33 lines
842 B
TypeScript
33 lines
842 B
TypeScript
import type { FastifyPluginAsyncZod } from 'fastify-type-provider-zod';
|
|
import { z } from 'zod';
|
|
|
|
import { DatabaseService } from '#root/services/database/database.js';
|
|
|
|
const systemEndpoints: FastifyPluginAsyncZod = async (instance) => {
|
|
instance.route({
|
|
method: 'GET',
|
|
url: '/ready',
|
|
schema: {
|
|
tags: ['system'],
|
|
operationId: 'GET/system/ready',
|
|
summary: 'Get system ready state',
|
|
response: {
|
|
200: z.object({
|
|
status: z.literal('ok'),
|
|
}),
|
|
},
|
|
},
|
|
handler: async (_, reply) => {
|
|
const { services } = instance;
|
|
const databaseService = services.get(DatabaseService);
|
|
const db = await databaseService.getInstance();
|
|
await db.raw('SELECT 1=1');
|
|
await reply.send({
|
|
status: 'ok',
|
|
});
|
|
},
|
|
});
|
|
};
|
|
|
|
export { systemEndpoints };
|