Register a new user
- Body:
{
"name": "string",
"age": "number",
"email": "string",
"phone": "string",
"password": "string",
"role": "customer | driver | manager",
"licensePlate": "string (optional)",
"vehicleModel": "string (optional)"
}Login with credentials
- Body:
{
"email": "string",
"password": "string"
}- Returns: Authentication token
Logout user
- Headers:
Authorization: Bearer <token>
Get all users
- Auth: Requires manager token
- Headers:
Authorization: Bearer <token> - Access: Manager only
Get user by ID
- Auth: Requires manager token
- Headers:
Authorization: Bearer <token> - Params:
id: number - Access: Manager only
Create new user
- Auth: Requires manager token
- Headers:
Authorization: Bearer <token> - Body: Same as signup DTO
- Access: Manager only
Create multiple users
- Auth: Requires manager token
- Headers:
Authorization: Bearer <token> - Body: Array of signup DTOs
- Access: Manager only
Update user
- Auth: Requires authentication
- Headers:
Authorization: Bearer <token> - Params:
id: number - Body: Partial user object
- Access: Users can only update their own information
Delete user
- Auth: Requires manager token
- Headers:
Authorization: Bearer <token> - Params:
id: number - Access: Manager only
Create new ride request
- Auth: Requires customer token
- Headers:
Authorization: Bearer <token> - Body:
{
"pickupLocation": "string",
"dropoffLocation": "string",
"paymentMethod": "cash | online"
}- Access: Customer only
Get authenticated customer's ride history
- Auth: Requires customer token
- Headers:
Authorization: Bearer <token> - Access: Customer only
- Returns: List of completed rides
Get all ride feedback
- Auth: Requires manager token
- Headers:
Authorization: Bearer <token> - Access: Manager only
Get customer's rides
- Auth: Requires authentication
- Headers:
Authorization: Bearer <token> - Params:
customerId: number
Get driver's rides
- Auth: Requires authentication
- Headers:
Authorization: Bearer <token> - Params:
driverId: number
Update ride status
- Auth: Requires driver token
- Headers:
Authorization: Bearer <token> - Params:
rideId: number - Body:
{
"status": "pending | accepted | in_progress | completed | cancelled"
}- Access: Only assigned driver can update
- Restrictions: Cannot update cancelled or completed rides
Provide ride feedback
- Auth: Requires customer token
- Headers:
Authorization: Bearer <token> - Params:
rideId: number - Body:
{
"rating": "number",
"feedback": "string"
}- Access: Only customer who took the ride
- Restrictions: Only for completed rides
Cancel ride
- Auth: Requires authentication
- Headers:
Authorization: Bearer <token> - Params:
rideId: number - Access: Only customer who created the ride or assigned driver
- Restrictions: Can only cancel pending or accepted rides
Accept ride
- Auth: Requires driver token
- Headers:
Authorization: Bearer <token> - Params:
rideId: number - Access: Drivers only