import { FastifyRequest, FastifyReply } from 'fastify'; import * as service from '../services'; import type { ContestRankingQuery } from '../types'; export async function getUserRatingHandler( request: FastifyRequest<{ Querystring: ContestRankingQuery }>, reply: FastifyReply ) { const { username } = request.query; const data = await service.getUserRating(username); return reply.send(data); } export async function getUserProfileHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserProfile(username); return reply.send(data); } export async function getUserDetailsHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserDetails(username); return reply.send(data); } export async function getUserBadgesHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserBadges(username); return reply.send(data); } export async function getUserSolvedHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserSolved(username); return reply.send(data); } export async function getUserContestHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserContest(username); return reply.send(data); } export async function getUserContestHistoryHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserContestHistory(username); return reply.send(data); } export async function getUserSubmissionHandler( request: FastifyRequest<{ Params: { username: string }; Querystring: { limit?: string } }>, reply: FastifyReply ) { const { username } = request.params; const limit = parseInt(request.query.limit || '20', 10); const data = await service.getUserSubmission(username, limit); return reply.send(data); } export async function getUserAcSubmissionHandler( request: FastifyRequest<{ Params: { username: string }; Querystring: { limit?: string } }>, reply: FastifyReply ) { const { username } = request.params; const limit = parseInt(request.query.limit || '20', 10); const data = await service.getUserAcSubmission(username, limit); return reply.send(data); } export async function getUserCalendarHandler( request: FastifyRequest<{ Params: { username: string }; Querystring: { year?: string } }>, reply: FastifyReply ) { const { username } = request.params; const year = parseInt(request.query.year || '0', 10); const data = await service.getUserCalendar(username, year); return reply.send(data); } export async function getUserSkillHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserSkill(username); return reply.send(data); } export async function getUserLanguageHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserLanguage(username); return reply.send(data); } export async function getUserProgressHandler( request: FastifyRequest<{ Params: { username: string } }>, reply: FastifyReply ) { const { username } = request.params; const data = await service.getUserProgress(username); return reply.send(data); }