24 lines
713 B
TypeScript
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');
|
|
}
|
|
}
|