Resource Endpoint: /groups/
GET /
None
[
{
"id": <int>,
"name": <string>,
"description": <string>,
"is_leader": <bool>,
@optional "avatar_url": <url>,
},
{
"id": <int>,
"name": <string>,
"description": <string>,
"is_leader": <bool>,
@optional "avatar_url": <url>,
}
]
GET /<int:group_id>/leader
None
{
"id": <int>,
"email": <email>,
"name": <string>,
@optional "avatar_url": <url>,
}
POST /
{
"name": <string>,
"description": <string>,
// TODO: how to send image to the server?
}
{
"id": <int>,
"name": <string>,
"description": <string>,
"leader_user_id": <ID>,
"created_at": <datetime>,
@optional "avatar_url": <url>,
}
GET /<int:group_id>/?open_session_count=<int>&balance_entry_count=<int>
None
{
"id": <int>,
"name": <string>,
"description": <string>,
"member_count": <int>,
"balance": {
"current": <float>,
"expected": <float>,
},
"recent_open_sessions": [ // contains at most <open_session_count> sessions
{
"id": <ID>,
"name": <string>,
"start": <datetime>,
"due": <datetime>,
"is_open": <bool>,
"member_count": <int>,
"paid_count": <int>,
"current_amount": <float>,
"expected_amount": <float>,
"amount_per_member": <float>,
},
{
"id": <ID>,
"name": <string>,
"start": <datetime>,
"due": <datetime>,
"is_open": <bool>,
"member_count": <int>,
"paid_count": <int>,
"current_amount": <float>,
"expected_amount": <float>,
"amount_per_member": <float>,
},
],
"recent_balance_entries": [ // contains at most <balance_entry_count> balance entries
{
"id": <ID>,
"current_amount": <float>,
"expected_amount": <float>,
"description": <string>,
"created_at": <datetime>,
"session": {
"id": <ID>,
"start": <datetime>,
"due": <datetime>,
"is_open": <bool>,
"member_count": <int>,
"paid_count": <int>,
"amount_per_member": <float>,
},
},
{
"id": <ID>,
"current_amount": <float>,
"expected_amount": <float>,
"description": <string>,
"created_at": <datetime>,
@optional "session": NULL,
},
],
@optional "avatar_url": <url>,
}
PUT/PATCH /<int:group_id>/
{
"name": <string>,
"description": <string>,
"leader_user_id": <ID>,
@optional "avatar": <file>,
}
{
"id": <int>,
"name": <string>,
"description": <string>,
"leader_user_id": <ID>,
"created_at": <datetime>,
@optional "modified_at": <datetime>,
@optional "avatar_url": <url>,
}
DELETE /<int:group_id>/
None
None