-
Notifications
You must be signed in to change notification settings - Fork 543
Expand file tree
/
Copy pathorders.js
More file actions
115 lines (110 loc) · 2.57 KB
/
orders.js
File metadata and controls
115 lines (110 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
const mongoose = require("mongoose");
const Order = require("../models/order");
const Product = require("../models/product");
exports.orders_get_all = (req, res, next) => {
Order.find()
.select("product quantity _id")
.populate("product", "name")
.exec()
.then(docs => {
res.status(200).json({
count: docs.length,
orders: docs.map(doc => {
return {
_id: doc._id,
product: doc.product,
quantity: doc.quantity,
request: {
type: "GET",
url: "http://localhost:3000/orders/" + doc._id
}
};
})
});
})
.catch(err => {
res.status(500).json({
error: err
});
});
};
exports.orders_create_order = (req, res, next) => {
Product.findById(req.body.productId)
.then(product => {
if (!product) {
return res.status(404).json({
message: "Product not found"
});
}
const order = new Order({
_id: mongoose.Types.ObjectId(),
quantity: req.body.quantity,
product: req.body.productId
});
return order.save();
})
.then(result => {
console.log(result);
res.status(201).json({
message: "Order stored",
createdOrder: {
_id: result._id,
product: result.product,
quantity: result.quantity
},
request: {
type: "GET",
url: "http://localhost:3000/orders/" + result._id
}
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
};
exports.orders_get_order = (req, res, next) => {
Order.findById(req.params.orderId)
.populate("product")
.exec()
.then(order => {
if (!order) {
return res.status(404).json({
message: "Order not found"
});
}
res.status(200).json({
order: order,
request: {
type: "GET",
url: "http://localhost:3000/orders"
}
});
})
.catch(err => {
res.status(500).json({
error: err
});
});
};
exports.orders_delete_order = (req, res, next) => {
Order.remove({ _id: req.params.orderId })
.exec()
.then(result => {
res.status(200).json({
message: "Order deleted",
request: {
type: "POST",
url: "http://localhost:3000/orders",
body: { productId: "ID", quantity: "Number" }
}
});
})
.catch(err => {
res.status(500).json({
error: err
});
});
};