fusero-app-boilerplate/src/apps/_app/routes/APIKeyRoutes.ts

20 lines
1022 B
TypeScript

import { FastifyPluginAsync, FastifyRequest, FastifyReply } from 'fastify';
import { APIKeyService } from '../services/APIKeyService';
import { APIKeyController } from '../http/controllers/APIKeyController';
const apiKeyRoutes: FastifyPluginAsync = async (app) => {
app.post('/generate', async (request: FastifyRequest<{ Body: { userId: number; appId: number } }>, reply: FastifyReply) => {
const apiKeyService = new APIKeyService(request.em);
const controller = new APIKeyController(apiKeyService);
return controller.getOrCreateApiKey(request, reply);
});
app.post('/get', async (request: FastifyRequest<{ Body: { userId: number; appId: number } }>, reply: FastifyReply) => {
const apiKeyService = new APIKeyService(request.em);
const apiKey = await apiKeyService.getAPIKeyForUserAndApp(request.body.userId, request.body.appId);
if (!apiKey) return reply.send({ apiKey: null });
return reply.send({ apiKey });
});
};
export default apiKeyRoutes;