This repository was archived by the owner on Jul 11, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathorders.js
More file actions
145 lines (139 loc) · 6.55 KB
/
Copy pathorders.js
File metadata and controls
145 lines (139 loc) · 6.55 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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
const {
requireAuth,
} = require('../middleware/auth');
/** @module orders */
module.exports = (app, nextMain) => {
/**
* @name GET /orders
* @description Lista órdenes
* @path {GET} /orders
* @query {String} [page=1] Página del listado a consultar
* @query {String} [limit=10] Cantitad de elementos por página
* @header {Object} link Parámetros de paginación
* @header {String} link.first Link a la primera página
* @header {String} link.prev Link a la página anterior
* @header {String} link.next Link a la página siguiente
* @header {String} link.last Link a la última página
* @auth Requiere `token` de autenticación
* @response {Array} orders
* @response {String} orders[]._id Id
* @response {String} orders[].userId Id usuaria que creó la orden
* @response {String} orders[].client Clienta para quien se creó la orden
* @response {Array} orders[].products Productos
* @response {Object} orders[].products[] Producto
* @response {Number} orders[].products[].qty Cantidad
* @response {Object} orders[].products[].product Producto
* @response {String} orders[].status Estado: `pending`, `canceled`, `delivering` o `delivered`
* @response {Date} orders[].dateEntry Fecha de creación
* @response {Date} [orders[].dateProcessed] Fecha de cambio de `status` a `delivered`
* @code {200} si la autenticación es correcta
* @code {401} si no hay cabecera de autenticación
*/
app.get('/orders', requireAuth, (req, resp, next) => {
});
/**
* @name GET /orders/:orderId
* @description Obtiene los datos de una orden especifico
* @path {GET} /orders/:orderId
* @params {String} :orderId `id` de la orden a consultar
* @auth Requiere `token` de autenticación
* @response {Object} order
* @response {String} order._id Id
* @response {String} order.userId Id usuaria que creó la orden
* @response {String} order.client Clienta para quien se creó la orden
* @response {Array} order.products Productos
* @response {Object} order.products[] Producto
* @response {Number} order.products[].qty Cantidad
* @response {Object} order.products[].product Producto
* @response {String} order.status Estado: `pending`, `canceled`, `delivering` o `delivered`
* @response {Date} order.dateEntry Fecha de creación
* @response {Date} [order.dateProcessed] Fecha de cambio de `status` a `delivered`
* @code {200} si la autenticación es correcta
* @code {401} si no hay cabecera de autenticación
* @code {404} si la orden con `orderId` indicado no existe
*/
app.get('/orders/:orderId', requireAuth, (req, resp, next) => {
});
/**
* @name POST /orders
* @description Crea una nueva orden
* @path {POST} /orders
* @auth Requiere `token` de autenticación
* @body {String} userId Id usuaria que creó la orden
* @body {String} client Clienta para quien se creó la orden
* @body {Array} products Productos
* @body {Object} products[] Producto
* @body {String} products[].productId Id de un producto
* @body {Number} products[].qty Cantidad de ese producto en la orden
* @response {Object} order
* @response {String} order._id Id
* @response {String} order.userId Id usuaria que creó la orden
* @response {String} order.client Clienta para quien se creó la orden
* @response {Array} order.products Productos
* @response {Object} order.products[] Producto
* @response {Number} order.products[].qty Cantidad
* @response {Object} order.products[].product Producto
* @response {String} order.status Estado: `pending`, `canceled`, `delivering` o `delivered`
* @response {Date} order.dateEntry Fecha de creación
* @response {Date} [order.dateProcessed] Fecha de cambio de `status` a `delivered`
* @code {200} si la autenticación es correcta
* @code {400} no se indica `userId` o se intenta crear una orden sin productos
* @code {401} si no hay cabecera de autenticación
*/
app.post('/orders', requireAuth, (req, resp, next) => {
});
/**
* @name PUT /orders
* @description Modifica una orden
* @path {PUT} /products
* @params {String} :orderId `id` de la orden
* @auth Requiere `token` de autenticación
* @body {String} [userId] Id usuaria que creó la orden
* @body {String} [client] Clienta para quien se creó la orden
* @body {Array} [products] Productos
* @body {Object} products[] Producto
* @body {String} products[].productId Id de un producto
* @body {Number} products[].qty Cantidad de ese producto en la orden
* @body {String} [status] Estado: `pending`, `canceled`, `delivering` o `delivered`
* @response {Object} order
* @response {String} order._id Id
* @response {String} order.userId Id usuaria que creó la orden
* @response {Array} order.products Productos
* @response {Object} order.products[] Producto
* @response {Number} order.products[].qty Cantidad
* @response {Object} order.products[].product Producto
* @response {String} order.status Estado: `pending`, `canceled`, `delivering` o `delivered`
* @response {Date} order.dateEntry Fecha de creación
* @response {Date} [order.dateProcessed] Fecha de cambio de `status` a `delivered`
* @code {200} si la autenticación es correcta
* @code {400} si no se indican ninguna propiedad a modificar o la propiedad `status` no es valida
* @code {401} si no hay cabecera de autenticación
* @code {404} si la orderId con `orderId` indicado no existe
*/
app.put('/orders/:orderId', requireAuth, (req, resp, next) => {
});
/**
* @name DELETE /orders
* @description Elimina una orden
* @path {DELETE} /orders
* @params {String} :orderId `id` del producto
* @auth Requiere `token` de autenticación
* @response {Object} order
* @response {String} order._id Id
* @response {String} order.userId Id usuaria que creó la orden
* @response {String} order.client Clienta para quien se creó la orden
* @response {Array} order.products Productos
* @response {Object} order.products[] Producto
* @response {Number} order.products[].qty Cantidad
* @response {Object} order.products[].product Producto
* @response {String} order.status Estado: `pending`, `canceled`, `delivering` o `delivered`
* @response {Date} order.dateEntry Fecha de creación
* @response {Date} [order.dateProcessed] Fecha de cambio de `status` a `delivered`
* @code {200} si la autenticación es correcta
* @code {401} si no hay cabecera de autenticación
* @code {404} si el producto con `orderId` indicado no existe
*/
app.delete('/orders/:orderId', requireAuth, (req, resp, next) => {
});
nextMain();
};