- Summary: Google OAuth Login
- Body:
{ "code": "string" } - Response:
200 OK:{ "success": true, "data": { "user": { ... }, "token": "string" } }400 Bad Request
- Summary: Get User Profile
- Headers:
Authorization: Bearer <token> - Response:
200 OK:{ "success": true, "data": { "user": { ... } } }401 Unauthorized
- Summary: Logout
- Headers:
Authorization: Bearer <token> - Response:
200 OK:{ "success": true, "message": "string" }
- GET
/tch/account: Get all team credits. - POST
/tch/account: Add credit to a team.- Body:
{ "teamId": integer, "addCredit": number }
- Body:
- GET
/tch/store: Get all stores. - POST
/tch/store: Create a store.- Body:
{ "name": "string", "price": number, "quantity": integer, "imageUrl": "string" }
- Body:
- GET
/tch/store/:id: Get a specific store. - PUT
/tch/store/:id: Update a store. - DELETE
/tch/store/:id: Delete a store. - POST
/tch/store/upload: Upload store image.
- GET
/tch/student: Get all students. - POST
/tch/append: Bulk register students/teams via Google Sheet.- Body:
{ "sheetUrl": "string" }
- Body:
- POST
/tch/student/assign: Assign a single student to a team.- Body:
{ "userNumber": "string", "name": "string", "teamId": integer }
- Body:
- GET
/tch/team/:id: Get team info. - POST
/tch/team: Create a team.- Body:
{ "teamName": "string", "students": [integer] }
- Body:
- GET
/haram/team: Get all teams list.
- GET
/haram/store: Get all store items. - GET
/haram/store/:type: Get store items by type (1=Coupon, 2=Snack).
- GET
/std/account: Get my account info (credit, etc.).
- POST
/std/select/pull: Pull a card.- Body:
{ "card": integer }
- Body:
- POST
/std/select/pull/shuffle: Swap credit with another team.- Body:
{ "targetTeamId": integer }
- Body:
- POST
/std/select/pull/steal: Steal credit from another team.- Body:
{ "targetTeamId": integer }
- Body:
- POST
/std/select/pull/anger: Reset anger (or specific action).- Body:
{ "targetTeamId": integer }
- Body:
- GET
/std/typing/game: Get current typing game. - POST
/std/typing/input: Submit typing result.- Body:
{ "input": "string", "gameId": integer }
- Body:
- GET
/std/typing/time: Get server time. - GET
/std/typing/rank: Get current rank.
- POST
/std/store: Purchase item.- Body:
{ "itemId": integer, "quantity": integer }
- Body:
- GET
/std/enforce/data: Get enforcement data. - POST
/std/enforce: Attempt enforcement. - DELETE
/std/enforce: Sell account (reset). - POST
/std/enforce/buy: Buy tier.- Body:
{ "tier": number }
- Body:
- POST
/std/enforce/credit: Convert enforcement points to credit.