-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
860f55d
commit d1d0d37
Showing
17 changed files
with
212 additions
and
215 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,20 @@ | ||
// import { Body, Controller, Get, Post, UseGuards } from "@nestjs/common"; | ||
// import { JwtAuthGuard } from "../guards/auth.guard"; | ||
// import { createOrderDto } from "../types/createOrder.dto"; | ||
// import { User as UserDecorator } from "../decorator/user.decorator"; | ||
// import { User } from "../users/users.schema"; | ||
// import { OrderService } from "./order.service"; | ||
// | ||
// @Controller({ | ||
// path: "order", | ||
// version: "1", | ||
// }) | ||
// export class OrderController { | ||
// constructor(private readonly orderService: OrderService) {} | ||
// | ||
// @Get("/getOrders") | ||
// @UseGuards(JwtAuthGuard) | ||
// async getOrders(@UserDecorator() user: User) { | ||
// return this.orderService.getOrders(user); | ||
// } | ||
// | ||
// @Post("/createOrder") | ||
// @UseGuards(JwtAuthGuard) | ||
// async create( | ||
// @Body() createOrderDto: createOrderDto, | ||
// @UserDecorator() user: User | ||
// ) { | ||
// const car = createOrderDto["car"]; | ||
// const paymentIntent = createOrderDto["paymentIntent"]; | ||
// return this.orderService.create(car, paymentIntent, user); | ||
// } | ||
// } | ||
import { Body, Controller, Get, Post, UseGuards } from "@nestjs/common"; | ||
import { JwtAuthGuard } from "../guards/auth.guard"; | ||
import { User as UserDecorator } from "../decorator/user.decorator"; | ||
import { User } from "../users/users.schema"; | ||
import { OrderService } from "./order.service"; | ||
import { Stripe } from "stripe"; | ||
|
||
@Controller({ | ||
path: "order", | ||
version: "1", | ||
}) | ||
export class OrderController { | ||
constructor(private readonly orderService: OrderService) {} | ||
|
||
@Get("/getOrders") | ||
@UseGuards(JwtAuthGuard) | ||
async getOrders(@UserDecorator() user: User) { | ||
return this.orderService.getOrders(user); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,21 @@ | ||
// //cars.module.ts | ||
// import { Module } from "@nestjs/common"; | ||
// import { MongooseModule } from "@nestjs/mongoose"; | ||
// import { Order, OrderSchema } from "./order.schema"; | ||
// import { OrderController } from "./order.controller"; | ||
// import { CarsModule } from "../cars/cars.module"; | ||
// import { OrderService } from "./order.service"; | ||
// import { PaymentsModule } from "../payments/payments.module"; | ||
// | ||
// @Module({ | ||
// imports: [ | ||
// MongooseModule.forFeature([{ name: Order.name, schema: OrderSchema }]), | ||
// CarsModule, | ||
// PaymentsModule, | ||
// ], | ||
// controllers: [OrderController], | ||
// providers: [OrderService], | ||
// }) | ||
// export class OrderModule {} | ||
//cars.module.ts | ||
import { Module } from "@nestjs/common"; | ||
import { MongooseModule } from "@nestjs/mongoose"; | ||
import { Order, OrderSchema } from "./order.schema"; | ||
import { OrderController } from "./order.controller"; | ||
import { CarsModule } from "../cars/cars.module"; | ||
import { OrderService } from "./order.service"; | ||
import { PaymentsModule } from "../payments/payments.module"; | ||
import { StripeModule } from "../stripe/stripe.module"; | ||
|
||
@Module({ | ||
imports: [ | ||
MongooseModule.forFeature([{ name: Order.name, schema: OrderSchema }]), | ||
CarsModule, | ||
PaymentsModule, | ||
StripeModule, | ||
], | ||
controllers: [OrderController], | ||
providers: [OrderService], | ||
}) | ||
export class OrderModule {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,35 @@ | ||
// import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose"; | ||
// import { HydratedDocument, Schema as mongooseSchema } from "mongoose"; | ||
// import { Car } from "../cars/cars.schema"; | ||
// import { User } from "../users/users.schema"; | ||
// | ||
// export type OrdersDocument = HydratedDocument<Order>; | ||
// | ||
// @Schema({ collection: "order" }) | ||
// export class Order { | ||
// @Prop({ type: mongooseSchema.Types.ObjectId, ref: "Car", required: true }) | ||
// car: Car; | ||
// | ||
// @Prop({ type: mongooseSchema.Types.ObjectId, ref: "User", required: true }) | ||
// user: User; | ||
// | ||
// @Prop({ type: String, required: true }) | ||
// paymentIntent: string; | ||
// | ||
// @Prop({ type: String, required: true }) | ||
// paymentMethod: string; | ||
// | ||
// @Prop({ type: Number, required: true }) | ||
// amount: number; | ||
// | ||
// @Prop({ type: String, required: true }) | ||
// currency: string; | ||
// | ||
// @Prop({ type: Date, default: Date.now() }) | ||
// createdOn: Date; | ||
// | ||
// @Prop({ type: Date }) | ||
// deliveredOn: Date; | ||
// } | ||
// | ||
// export const OrderSchema = SchemaFactory.createForClass(Order); | ||
import { Prop, Schema, SchemaFactory } from "@nestjs/mongoose"; | ||
import { HydratedDocument, Schema as mongooseSchema } from "mongoose"; | ||
import { Car } from "../cars/cars.schema"; | ||
import { User } from "../users/users.schema"; | ||
|
||
export type OrdersDocument = HydratedDocument<Order>; | ||
|
||
@Schema({ collection: "order" }) | ||
export class Order { | ||
@Prop({ type: mongooseSchema.Types.ObjectId, ref: "Car", required: true }) | ||
car: Car; | ||
|
||
@Prop({ type: mongooseSchema.Types.ObjectId, ref: "User", required: true }) | ||
user: User; | ||
|
||
@Prop({ type: String, required: true }) | ||
paymentIntent: string; | ||
|
||
@Prop({ type: String, required: true }) | ||
paymentMethod: string; | ||
|
||
@Prop({ type: Number, required: true }) | ||
amount: number; | ||
|
||
@Prop({ type: String, required: true }) | ||
currency: string; | ||
|
||
@Prop({ type: Date, default: Date.now() }) | ||
createdOn: Date; | ||
|
||
@Prop({ type: Date }) | ||
deliveredOn: Date; | ||
} | ||
|
||
export const OrderSchema = SchemaFactory.createForClass(Order); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,53 +1,20 @@ | ||
// import { InjectModel } from "@nestjs/mongoose"; | ||
// import { Order } from "./order.schema"; | ||
// import { Model } from "mongoose"; | ||
// import { | ||
// Injectable, | ||
// NotAcceptableException, | ||
// NotFoundException, | ||
// } from "@nestjs/common"; | ||
// import { User } from "../users/users.schema"; | ||
// import { CarsService } from "../cars/cars.service"; | ||
// import { PaymentsService } from "../payments/payments.service"; | ||
// | ||
// @Injectable() | ||
// export class OrderService { | ||
// constructor( | ||
// @InjectModel(Order.name) private orderModel: Model<Order>, | ||
// private carsService: CarsService, | ||
// private paymentsService: PaymentsService | ||
// ) {} | ||
// | ||
// async getOrders(user: User) { | ||
// return this.orderModel.find({ user: user["_id"] }).populate("car").exec(); | ||
// } | ||
// | ||
// async create(car: string, paymentIntent: string, user: User) { | ||
// const [carData, paymentIntentData] = await Promise.all([ | ||
// this.carsService.getCarById(car), | ||
// this.paymentsService.retrievePaymentIntent(paymentIntent), | ||
// ]); | ||
// | ||
// if (!carData || !paymentIntentData) { | ||
// throw new NotFoundException("Car or payment intent not found"); | ||
// } | ||
// | ||
// const existingOrder = await this.orderModel.findOne({ | ||
// paymentIntent: paymentIntent, | ||
// }); | ||
// if (existingOrder) { | ||
// throw new NotAcceptableException("Order already exists"); | ||
// } | ||
// | ||
// const order = new this.orderModel({ | ||
// car: car, | ||
// user: user["_id"], | ||
// paymentIntent: paymentIntent, | ||
// paymentMethod: paymentIntentData["payment_method"], | ||
// amount: paymentIntentData["amount"], | ||
// currency: paymentIntentData["currency"], | ||
// }); | ||
// | ||
// return order.save(); | ||
// } | ||
// } | ||
import { InjectModel } from "@nestjs/mongoose"; | ||
import { Order } from "./order.schema"; | ||
import { Model } from "mongoose"; | ||
import { Injectable } from "@nestjs/common"; | ||
import { User } from "../users/users.schema"; | ||
import { CarsService } from "../cars/cars.service"; | ||
import { PaymentsService } from "../payments/payments.service"; | ||
|
||
@Injectable() | ||
export class OrderService { | ||
constructor( | ||
@InjectModel(Order.name) private orderModel: Model<Order>, | ||
private carsService: CarsService, | ||
private paymentsService: PaymentsService | ||
) {} | ||
|
||
async getOrders(user: User) { | ||
return this.orderModel.find({ user: user["_id"] }).populate("car").exec(); | ||
} | ||
} |
Oops, something went wrong.