Download src/server/api/teams.ts from chenbhao/codev: direct link, hf CLI and curl.
- Browser
- Download file 3.03 kB
-
https://huggingface.co/chenbhao/codev/resolve/main/src/server/api/teams.ts
- Command line
-
hf download hf://chenbhao/codev/src/server/api/teams.ts
-
curl -L -o teams.ts https://huggingface.co/chenbhao/codev/resolve/main/src/server/api/teams.ts
3.03 kB
| /** | |
| * Teams REST API | |
| * | |
| * GET /api/teams β εεΊζζε’ι | |
| * GET /api/teams/:name β θ·εε’ιθ―¦ζ | |
| * GET /api/teams/:name/members/:id/transcript β θ·εζε transcript | |
| * POST /api/teams/:name/members/:id/messages β η»ζεειζΆζ― | |
| * DELETE /api/teams/:name β ε ι€ε’ι | |
| */ | |
| import { teamService } from '../services/teamService.js' | |
| import { ApiError, errorResponse } from '../middleware/errorHandler.js' | |
| export async function handleTeamsApi( | |
| req: Request, | |
| _url: URL, | |
| segments: string[], | |
| ): Promise<Response> { | |
| try { | |
| const method = req.method | |
| const teamName = segments[2] ? decodeURIComponent(segments[2]) : undefined | |
| // ββ GET /api/teams ββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| if (method === 'GET' && !teamName) { | |
| const teams = await teamService.listTeams() | |
| return Response.json({ teams }) | |
| } | |
| // ββ GET /api/teams/:name/members/:id/transcript βββββββββββββββββββββββ | |
| if ( | |
| method === 'GET' && | |
| teamName && | |
| segments[3] === 'members' && | |
| segments[4] && | |
| segments[5] === 'transcript' | |
| ) { | |
| const agentId = decodeURIComponent(segments[4]) | |
| const messages = await teamService.getMemberTranscript(teamName, agentId) | |
| return Response.json({ messages }) | |
| } | |
| // ββ POST /api/teams/:name/members/:id/messages βββββββββββββββββββββββββ | |
| if ( | |
| method === 'POST' && | |
| teamName && | |
| segments[3] === 'members' && | |
| segments[4] && | |
| segments[5] === 'messages' | |
| ) { | |
| const agentId = decodeURIComponent(segments[4]) | |
| let body: { content?: string } | |
| try { | |
| body = (await req.json()) as { content?: string } | |
| } catch { | |
| throw ApiError.badRequest('Invalid JSON body') | |
| } | |
| await teamService.sendMemberMessage(teamName, agentId, body.content ?? '') | |
| return Response.json({ ok: true }) | |
| } | |
| // ββ GET /api/teams/:name ββββββββββββββββββββββββββββββββββββββββββββββ | |
| if (method === 'GET' && teamName) { | |
| const team = await teamService.getTeam(teamName) | |
| return Response.json(team) | |
| } | |
| // ββ DELETE /api/teams/:name βββββββββββββββββββββββββββββββββββββββββββ | |
| if (method === 'DELETE' && teamName) { | |
| await teamService.deleteTeam(teamName) | |
| return Response.json({ ok: true }) | |
| } | |
| throw new ApiError( | |
| 405, | |
| `Method ${method} not allowed on /api/teams${teamName ? `/${teamName}` : ''}`, | |
| 'METHOD_NOT_ALLOWED', | |
| ) | |
| } catch (error) { | |
| return errorResponse(error) | |
| } | |
| } | |