Retrieves all groups.
Endpoint: GET /all
Response:
json
{
"groups": [
{
"id": "string",
"name": "string",
"createdAt": "timestamp",
"updatedAt": "timestamp"
}
]
}
Retrieves details of a specific group.
Endpoint: GET /get/:id
Parameters:
id (path parameter): Group IDResponse:
json
{
"groupData": {
"data": {
"group": {
"id": "string",
"name": "string",
"createdAt": "timestamp",
"updatedAt": "timestamp"
},
"users": [
{
"id": "string",
"name": "string",
"email": "string",
"status": "string",
"isDriver": boolean,
"roles": [
{
"role": "string",
"userId": "string",
"groupId": "string"
}
]
}
]
}
}
}
Creates a new group.
Endpoint: POST /create
Request Body:
json
{
"name": "string",
"userId": "string"
}
Response:
json
{
"message": "group created successfully",
"group": {
"id": "string",
"name": "string",
"creator": {
"userId": "string",
"groupId": "string",
"roles": [
{
"role": "owner",
"userId": "string",
"groupId": "string"
}
]
}
}
}
Adds a user to an existing group.
Endpoint: POST /add
Request Body:
json
{
"userId": "string",
"groupId": "string"
}
Response:
json
{
"message": "User added successfully",
"groupUser": {
"userId": "string",
"groupId": "string",
"roles": [
{
"role": "member",
"userId": "string",
"groupId": "string"
}
]
}
}
Deletes a group.
Endpoint: POST /delete
Request Body:
json
{
"userId": "string",
"groupId": "string"
}
Response:
json
{
"message": "Group with ID {groupId} has been successfully deleted."
}
Allows a user to leave a group.
Endpoint: POST /leave
Request Body:
json
{
"userId": "string",
"groupId": "string"
}
Response:
json
{
"message": "User with ID {userId} has successfully left the group with ID {groupId}."
}
Creates an invite code for a group.
Endpoint: POST /invite/create
Request Body:
json
{
"groupId": "string",
"userId": "string",
"maxUses": number,
"expiresInSeconds": number
}
Response:
json
{
"code": "string"
}
Joins a group using an invite code.
Endpoint: POST /invite/join
Request Body:
json
{
"code": "string",
"userId": "string"
}
Response:
json
{
"message": "Successfully joined group",
"groupId": "string"
}
Updates a member's role in a group.
Endpoint: POST /member/role
Request Body:
json
{
"userId": "string",
"groupId": "string",
"role": "string"
}
Response:
json
{
"message": "Role updated successfully"
}
Updates a member's driver status in a group.
Endpoint: POST /member/driver
Request Body:
json
{
"userId": "string",
"groupId": "string",
"isDriver": boolean
}
Response:
json
{
"message": "Driver status updated successfully"
}
Renames a group.
Endpoint: POST /rename
Request Body:
json
{
"userId": "string",
"groupId": "string",
"name": "string"
}
Response:
json
{
"message": "Group renamed successfully",
"group": {
"id": "string",
"name": "string"
}
}
Retrieves settings for a specific group.
Endpoint: GET /:groupId/settings
Parameters:
groupId (path parameter): Group IDResponse:
json
{
"settings": {
"require_join_approval": boolean,
"members_can_invite": boolean,
"allow_volunteer_drivers": boolean,
"auto_assign_drivers": boolean,
"member_updates": boolean,
"driver_updates": boolean,
"event_reminders": boolean,
"location_sharing": boolean,
"group_chat": boolean,
"group_visibility": boolean
}
}
Updates settings for a specific group.
Endpoint: PATCH /:groupId/settings
Parameters:
groupId (path parameter): Group IDRequest Body:
json
{
"require_join_approval": boolean,
"members_can_invite": boolean,
"allow_volunteer_drivers": boolean,
"auto_assign_drivers": boolean,
"member_updates": boolean,
"driver_updates": boolean,
"event_reminders": boolean,
"location_sharing": boolean,
"group_chat": boolean,
"group_visibility": boolean
}
Response:
json
{
"settings": {
"require_join_approval": boolean,
"members_can_invite": boolean,
"allow_volunteer_drivers": boolean,
"auto_assign_drivers": boolean,
"member_updates": boolean,
"driver_updates": boolean,
"event_reminders": boolean,
"location_sharing": boolean,
"group_chat": boolean,
"group_visibility": boolean
}
}
Updates a member's status in a group.
Endpoint: POST /member/status
Request Body:
json
{
"userId": "string",
"groupId": "string",
"status": "Available" | "Busy" | "Not Available"
}
Response:
json
{
"message": "User status updated successfully",
"user": {
"userId": "string",
"groupId": "string",
"status": "string"
}
}
Transfers group ownership to another member.
Endpoint: POST /transfer-ownership
Request Body:
json
{
"userId": "string",
"newOwnerId": "string",
"groupId": "string"
}
Response:
json
{
"message": "Ownership transferred successfully",
"newOwnerId": "string",
"previousOwnerId": "string"
}