Files
stats/apps/api/src/hooks/client.hook.ts
Carl-Gerhard Lindesvärd 5d7bb48b4e fix(api): logs
2024-12-07 21:49:00 +01:00

24 lines
713 B
TypeScript

import { SdkAuthError, validateSdkRequest } from '@/utils/auth';
import type { PostEventPayload, TrackHandlerPayload } from '@openpanel/sdk';
import type { FastifyReply, FastifyRequest } from 'fastify';
export async function clientHook(
req: FastifyRequest<{
Body: PostEventPayload | TrackHandlerPayload;
}>,
reply: FastifyReply,
) {
try {
const client = await validateSdkRequest(req);
req.client = client;
} catch (error) {
if (error instanceof SdkAuthError) {
req.log.warn('Invalid SDK request', error);
return reply.status(401).send(error.message);
}
req.log.error('Invalid SDK request', error);
return reply.status(500).send('Internal server error');
}
}