Welcome to the API documentation. Below you will find details about the available endpoints, request formats, and other essential information to help you integrate with our API.
This API provides endpoints to manage requests and user information. Users can create, update, delete, accept, complete, and cancel accepted requests. Each request can be managed by users with appropriate permissions. Additionally, users are able to change, add, and delete their username and contact number
- Main branch (Deployment):
https://be-v50-tier3-team-28.onrender.com/api
- Development branch (Local):
http://localhost:3003/api
This API provides endpoints to manage requests. Users can create, update, delete, accept, complete, and cancel accepted requests. Each request can be managed by users with appropriate permissions.
This API provides endpoints to manage user information. Users can update or delete their metadata, including username and contact number.
This API provides endpoints to fetch user dashboard information.
All endpoints require JWT authentication. Include the token in the Authorization
header as follows:
- Authorization: Bearer <your_jwt_token>
- URL:
/requests/
- Method:
POST
- Authentication Required: Yes
Request Body:
{
"title": "Sample Request",
"description": "This is a sample request description.",
"image": "http://example.com/image.jpg",
"location": {
"type": "Point",
"coordinates": [-73.856077, 40.848447],
"city": "City",
"country": "Country"
},
"isActive": true,
"isAccepted": false
}
Success Response:
{
"success": true,
"message": "Request created successfully",
"request": { ... }
}
- URL:
/requests/:id
- Method:
PUT
- Authentication Required: Yes
Request Body:
{
"title": "Updated Request Title",
"description": "Updated description",
"image": "http://example.com/updated-image.jpg",
"location": {
"type": "Point",
"coordinates": [-73.856077, 40.848447],
"city": "Updated City",
"country": "Updated Country"
}
}
Success Response:
{
"success": true,
"message": "Request updated successfully",
"request": {
"_id": "request_id",
"title": "Updated Request Title",
"description": "Updated description",
"image": "http://example.com/updated-image.jpg",
"location": {
"type": "Point",
"coordinates": [-73.856077, 40.848447],
"city": "Updated City",
"country": "Updated Country"
},
"isActive": true,
"isAccepted": false,
"beefinderId": "user_id",
"createdAt": "2024-07-25T16:28:29.227Z",
"updatedAt": "2024-07-26T16:01:39.641Z",
"__v": 0
}
}
- URL:
/requests/:id
- Method:
DELETE
- Authentication Required: Yes
Response:
{
"success": true,
"message": "Request deleted successfully",
"request": { ... }
}
- URL:
/requests/:id
- Method:
POST
- Authentication Required: Yes
Response:
{
"success": true,
"message": "Request accepted successfully",
"request": { ... }
}
- URL:
/requests/:id/complete
- Method:
POST
- Authentication Required: Yes
Response:
{
"success": true,
"message": "Request completed successfully",
"request": { ... }
}
- URL:
/requests/:id/cancel
- Method:
PATCH
- Authentication Required: Yes
Response:
{
"success": true,
"message": "Request cancellation accepted successfully",
"request": { ... }
}
- URL:
/requests/
- Method:
GET
- Authentication Required: Yes
Response:
{
"success": true,
"message": "Requests retrieved successfully",
"requests": [
{
"location": {
"type": "Point",
"coordinates": [-73.856077, 40.848447],
"city": "City",
"country": "Country"
},
"title": "Sample Request",
"description": "This is a sample request description.",
"image": "http://example.com/image.jpg",
"isActive": true,
"isAccepted": false,
"createdAt": "2024-07-25T16:28:29.227Z",
"updatedAt": "2024-07-26T16:01:39.641Z",
"beefinder": {
"email": "[email protected]",
"name": "User Name",
"userName": "username"
}
},
...
]
}
- URL:
/user/metadata
- Method:
PATCH
- Authentication Required: Yes
Request Body::
{
"metadata": {
"userName": "newUsername",
"contactNumber": "0987654321"
}
}
Success Response:
{
"message": "Metadata updated successfully",
"user": {
"userId": "auth0|123456789",
"metadata": {
"userName": "newUsername",
"contactNumber": "0987654321"
}
}
}
- URL:
/user/:userId
- Method:
DELETE
- Authentication Required: Yes
Success Response:
{
"message": "User deleted successfully"
}
- URL:
/dashboard/
- Method:
GET
- Authentication Required: Yes
Success Response::
{
"user": {
"name": "User Name",
"email": "[email protected]",
"userId": "auth0|123456789",
"emailVerified": true,
"metadata": {
"userName": "username",
"contactNumber": "1234567890"
}
}
}
- location: Object
- type: String (Point)
- coordinates: Array of Numbers (longitude, latitude)
- city: String
- country: String
- title: String
- description: String
- contactNumber: String
- image: String (URL)
- isActive: Boolean
- isAccepted: Boolean
- createdAt: Date
- updatedAt: Date
- beefinderId: String (User ID)
- beekeeperId: String (User ID, nullable)
- acceptedAt: Date (nullable)
- completedAt: Date (nullable)
- canceledAcceptedAt: Date (nullable)
- email: String
- name: String
- userName: String (nullable)
- contactNumber: String (nullable)
- createdAt: Date
- updatedAt: Date
- Ensure all request bodies are properly formatted JSON objects.
- All dates should be in ISO 8601 format.
- The
id
parameter in the URL should be the MongoDB ObjectId of the request. - Authentication is required for all endpoints. Ensure you include a valid JWT token in the request headers.