You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* summary: Retorna o carrinho de compras de um usuário.
23
+
* description: Permite buscar o carrinho de compras associado a um ID de usuário específico. Se o carrinho não existir, pode ser criado um novo (se a lógica da API permitir) ou retornada uma resposta de "não encontrado".
24
+
* tags:
25
+
* - Carrinhos
26
+
* parameters:
27
+
* - in: path
28
+
* name: userId
29
+
* required: true
30
+
* schema:
31
+
* type: string
32
+
* description: O ID único do usuário.
33
+
* example: user_abc
34
+
* responses:
35
+
* 200:
36
+
* description: Carrinho retornado com sucesso.
37
+
* content:
38
+
* application/json:
39
+
* schema:
40
+
* $ref: '#/components/schemas/Cart'
41
+
* 404:
42
+
* description: Carrinho para o usuário não encontrado.
43
+
* content:
44
+
* application/json:
45
+
* schema:
46
+
* type: object
47
+
* properties:
48
+
* error:
49
+
* type: string
50
+
* example: Carrinho para o usuário 'user_xyz' não encontrado.
51
+
*/
52
+
router.get('/cart/:userId',(req,res)=>{
53
+
const{ userId }=req.params;
54
+
constcart=carts[userId];
55
+
if(cart){
56
+
res.json(cart);
57
+
}else{
58
+
// Em um cenário real, você pode criar um carrinho vazio aqui ou retornar 404
59
+
res.status(404).json({error: `Carrinho para o usuário '${userId}' não encontrado.`});
60
+
}
61
+
});
62
+
63
+
/**
64
+
* @swagger
65
+
* /cart/{userId}/items:
66
+
* post:
67
+
* summary: Adiciona um item ao carrinho de um usuário.
68
+
* description: Adiciona uma determinada quantidade de um produto ao carrinho de compras do usuário. Se o produto já estiver no carrinho, a quantidade será atualizada.
69
+
* tags:
70
+
* - Carrinhos
71
+
* parameters:
72
+
* - in: path
73
+
* name: userId
74
+
* required: true
75
+
* schema:
76
+
* type: string
77
+
* description: O ID único do usuário.
78
+
* example: user_abc
79
+
* requestBody:
80
+
* required: true
81
+
* content:
82
+
* application/json:
83
+
* schema:
84
+
* $ref: '#/components/schemas/CartItemInput'
85
+
* example:
86
+
* productId: prod_003
87
+
* quantity: 1
88
+
* responses:
89
+
* 200:
90
+
* description: Item adicionado/atualizado no carrinho com sucesso.
91
+
* content:
92
+
* application/json:
93
+
* schema:
94
+
* $ref: '#/components/schemas/Cart'
95
+
* 400:
96
+
* description: Dados de entrada inválidos ou quantidade inválida.
97
+
* content:
98
+
* application/json:
99
+
* schema:
100
+
* type: object
101
+
* properties:
102
+
* error:
103
+
* type: string
104
+
* example: Quantidade inválida para o produto 'prod_003'.
105
+
* 404:
106
+
* description: Produto não encontrado ou usuário não existe para criar carrinho.
107
+
* content:
108
+
* application/json:
109
+
* schema:
110
+
* type: object
111
+
* properties:
112
+
* error:
113
+
* type: string
114
+
* example: Produto com ID 'prod_999' não encontrado.
0 commit comments