| import { FastifyRequest, FastifyReply } from 'fastify'; | |
| import * as service from './service'; | |
| import type { PlatformQuery, PlatformParams } from './types'; | |
| export async function getAllRatingsHandler( | |
| request: FastifyRequest<{ Querystring: PlatformQuery }>, | |
| reply: FastifyReply | |
| ) { | |
| const { username } = request.query; | |
| try { | |
| const data = await service.getAllRatings(username); | |
| return reply.send(data); | |
| } catch (error: any) { | |
| return reply.status(500).send({ | |
| error: 'Error fetching ratings', | |
| }); | |
| } | |
| } | |
| export async function getPlatformRatingHandler( | |
| request: FastifyRequest<{ Querystring: PlatformQuery; Params: PlatformParams }>, | |
| reply: FastifyReply | |
| ) { | |
| const { username } = request.query; | |
| const { platform } = request.params; | |
| try { | |
| const rating = await service.getPlatformRating(platform, username); | |
| return reply.send({ platform, username, ...rating }); | |
| } catch (error: any) { | |
| if (error.message === 'Invalid platform') { | |
| return reply.status(400).send({ error: 'Invalid platform' }); | |
| } | |
| return reply.status(500).send({ | |
| error: `Error fetching ${platform} rating`, | |
| }); | |
| } | |
| } | |