20 lines
1022 B
TypeScript
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;
|