- Endpoint:
GET /user/all
- Description: Get a list of all users.
- Authorization: Required (
jwtValidationMiddleware
)
- Endpoint:
GET /user/:id
- Description: Get user details by user ID.
- Authorization: Required (
jwtValidationMiddleware
)
-
Endpoint:
POST /user
-
Description: Create a new user.
-
Authorization: Not required.
-
Middleware:
userMiddleware
-
Body example:
{ "name": "Nikolas Menezes", "password": "crazy_password123", "email": "[email protected]", "isPremium": true }
-
Endpoint:
PATCH /user/:id
-
Description: Update user details by user ID.
-
Authorization: Required (
jwtValidationMiddleware
){ "name": "Nikolas Menezes", "password": "crazy_password123", "email": "[email protected]", "isPremium": true }
obs: you can send just one of this properties to update instead of all them.
- Endpoint:
DELETE /user/:id
- Description: Delete user by user ID.
- Authorization: Required (
jwtValidationMiddleware
)
- Endpoint:
GET /user/info/:id
- Description: Get basic information of a user by user ID.
- Authorization: Required (
jwtValidationMiddleware
)
-
Endpoint:
POST /user/info/:id
-
Description: Store basic information for a user.
-
Authorization: Required (
jwtValidationMiddleware
) -
Middleware:
verifyUserBasicInfoFields
-
Body example:
{ "age": 30, "gender": "male", "height": 179, "weight": 85 }
-
Endpoint:
PATCH /user/info/:id
-
Description: Update basic information for a user.
-
Authorization: Required (
jwtValidationMiddleware
) -
Body example:
{ "age": 30, "gender": "male", "height": 179, "weight": 85 }
obs: you can send just one of this properties to update instead of all them.
-
Endpoint:
POST /login
-
Description: Authenticate user and generate a JWT token.
-
Authorization: Not required.
-
Body example:
{ "email": "[email protected]", "password": "admin" }
-
Response Example:
{ "status": "success", "token": "your token comes here", "expiresIn": 1708128269245 }
- Endpoint:
GET /food/all
- Description: Get a list of all food generics.
- Authorization: Required (
jwtValidationMiddleware
)
- Endpoint:
GET /food
- Description: Get food generics by group.
- Authorization: Required (
jwtValidationMiddleware
) - Middleware:
validateSentGroup
- Endpoint:
GET /food/:id
- Description: Get food details by ID.
- Authorization: Required (
jwtValidationMiddleware
) - Middleware:
validateSentGroup
- Endpoint:
GET /meal/user
- Description: Get all meals for a user.
- Authorization: Required (
jwtValidationMiddleware
)
- Endpoint:
GET /meal/:id
- Description: Get meal details by ID.
- Authorization: Required (
jwtValidationMiddleware
)
-
Endpoint:
POST /meal
-
Description: Create a new meal.
-
Authorization: Required (
jwtValidationMiddleware
) -
Middleware:
verifyMealFields
-
Body example:
{ "user_id": 1, "foods_id": [1, 2], "name": "Dinner", "description": "Last meal of my day" }
-
Endpoint:
POST /meal/:id/food
-
Description: Add food to a meal.
-
Authorization: Required (
jwtValidationMiddleware
) -
Body example:
{ "food_id": [7, 8, 9] }
-
Endpoint:
PUT /meal/:id
-
Description: Update meal details.
-
Authorization: Required (
jwtValidationMiddleware
) -
Middleware:
verifyMealFields
-
Body example:
{ "name": "Lunch", "description": "The most important meal" }
- Endpoint:
DELETE /meal/:id
- Description: Delete a meal by ID.
- Authorization: Required (
jwtValidationMiddleware
)
- Endpoint:
DELETE /meal/:meal_id/food/:food_id
- Description: Remove a specific food from a meal.
- Authorization: Required (
jwtValidationMiddleware
)