import type { MarkAttendance } from '@gruperly/shared'; import { MarkAttendanceSchema } from '@gruperly/shared'; import { Hono } from 'hono'; import { problemJson, resultJson, unauthorizedProblem } from '@/http/problem-details'; import { validate } from '@/http/validate'; import { MarkSessionAttendance } from './use-case'; const route = new Hono(); route.post('/:sessionId/attendance', validate.json(MarkAttendanceSchema), async (c) => { const user = c.get('user'); if (!user) { return problemJson(c, unauthorizedProblem(c.req.path)); } const sessionId = c.req.param('sessionId'); const payload = c.req.valid('json') as MarkAttendance; const useCase = new MarkSessionAttendance(); const result = await useCase.execute(sessionId, payload, user.id); return resultJson(c, result); }); export default route;