fusero-app-boilerplate/src/apps/canvas-api/http/controllers/CanvasApiEndpointController.ts

33 lines
1.4 KiB
TypeScript

import { FastifyRequest, FastifyReply } from 'fastify';
import { CanvasApiEndpoint } from '../../entities/CanvasApiEndpoint';
export class CanvasApiEndpointController {
async getAll(request: FastifyRequest, reply: FastifyReply) {
const endpoints = await request.em.find(CanvasApiEndpoint, {});
return reply.send(endpoints);
}
async create(request: FastifyRequest, reply: FastifyReply) {
const { name, method, path, description, user } = request.body as any;
if (!name || !method || !path) {
return reply.status(400).send({ error: 'name, method, and path are required' });
}
const endpoint = new CanvasApiEndpoint();
endpoint.name = name;
endpoint.method = method;
endpoint.path = path;
endpoint.description = description;
endpoint.user = user;
await request.em.persistAndFlush(endpoint);
return reply.send(endpoint);
}
async delete(request: FastifyRequest, reply: FastifyReply) {
const id = Number(request.params['id']);
if (!id) return reply.status(400).send({ error: 'Missing id' });
const endpoint = await request.em.findOne(CanvasApiEndpoint, { id });
if (!endpoint) return reply.status(404).send({ error: 'Not found' });
await request.em.removeAndFlush(endpoint);
return reply.send({ success: true });
}
}