1
1
import { Request , Response } from 'express' ;
2
2
import axios from 'axios' ;
3
+ import { Order } from '../models/Order' ;
4
+ import { BadRequestError , CurrentUserRequest , Events } from '@chronosrx/common' ;
5
+ import { Inventory } from '../models/Inventory' ;
3
6
4
- export const getOrder = async ( req :Request , res :Response ) => {
5
-
6
- }
7
+ export const createOrder = async ( req : CurrentUserRequest , res : Response ) => {
8
+ //deconstruct req.body
9
+ const buyerId = req . currentUser ;
10
+ const { itemId, amount, totalPrice, sellerId } = req . body ;
11
+ //create Order document in the databse
12
+ const newOrder = Inventory . build ( { } ) ;
13
+ await newOrder . save ( ) ;
14
+ //send created order to event bus
15
+ await axios . post ( 'http://localhost:3005/' , {
16
+ event : {
17
+ type : Events . ORDER_CREATED ,
18
+ payload : newOrder ,
19
+ } ,
20
+ } ) ;
21
+ res . status ( 201 ) . send ( newOrder ) ;
22
+ } ;
7
23
8
- export const getSale = async ( req :Request , res :Response ) => {
9
-
10
- }
24
+ export const getOrder = async ( req : Request , res : Response ) => {
25
+ // check if order already exists
26
+ const { buyerId } = req . body ;
27
+ const exsitingOrder = await Order . findOne ( { buyerId } ) ;
28
+ if ( ! exsitingOrder ) {
29
+ throw new BadRequestError ( 'Order with that id does not exists' ) ;
30
+ }
31
+ //check inventory itemId, amount
32
+ res . status ( 200 ) . send ( exsitingOrder ) ;
33
+ } ;
11
34
12
- export const createOrder = async ( req :Request , res :Response ) => {
13
-
14
- }
35
+ export const getSale = async ( req : Request , res : Response ) => {
36
+ const { sellerId } = req . body ;
37
+ const sales = await Order . find ( { sellerId } ) ;
38
+ if ( ! sales ) {
39
+ throw new BadRequestError ( 'Sales with that sellerId does not exist' ) ;
40
+ }
41
+ res . status ( 200 ) . send ( sales ) ;
42
+ } ;
15
43
16
- export const deleteOrder = async ( req :Request , res :Response ) => {
17
-
18
- }
44
+ export const deleteOrder = async ( req : Request , res : Response ) => {
45
+ const { id } = req . body ;
46
+ const deletedOrder = await Order . findOneAndDelete ( { id } ) ;
47
+ if ( ! deletedOrder ) {
48
+ throw new BadRequestError ( `Could not find that order by id to delete` ) ;
49
+ }
50
+ res . status ( 200 ) . send ( deletedOrder ) ;
51
+ } ;
0 commit comments