skailan-core
Version:
Servicio de autenticación y multitenancy para Skailan.
67 lines • 2.53 kB
JavaScript
import { PrismaClient } from "@prisma/client";
import { FeatureService } from "../services/FeatureService";
const prisma = new PrismaClient();
export class FeatureController {
static async listFeatures(req, res) {
try {
const features = await FeatureService.listFeatures(prisma);
res.json(features);
}
catch (error) {
console.error("Error listing features:", error);
res.status(500).json({ error: "Error interno del servidor" });
}
}
static async createFeature(req, res) {
try {
const { name, description } = req.body;
if (!name) {
res.status(400).json({ error: "El nombre es requerido" });
return;
}
const feature = await FeatureService.createFeature(prisma, name, description);
res.status(201).json(feature);
}
catch (error) {
console.error("Error creating feature:", error);
res.status(500).json({ error: "Error interno del servidor" });
}
}
static async updateFeature(req, res) {
try {
const { id } = req.params;
const { name, description } = req.body;
if (!id) {
res.status(400).json({ error: "ID es requerido" });
return;
}
const feature = await FeatureService.updateFeature(prisma, id, name, description);
res.json(feature);
}
catch (error) {
console.error("Error updating feature:", error);
res.status(500).json({ error: "Error interno del servidor" });
}
}
static async deleteFeature(req, res) {
try {
const { id } = req.params;
if (!id) {
res.status(400).json({ error: "ID es requerido" });
return;
}
await FeatureService.deleteFeature(prisma, id);
res.status(204).send();
}
catch (error) {
console.error("Error deleting feature:", error);
res.status(500).json({ error: "Error interno del servidor" });
}
}
}
// Exportar los métodos individualmente para las rutas
export const listFeatures = FeatureController.listFeatures;
export const createFeature = FeatureController.createFeature;
export const updateFeature = FeatureController.updateFeature;
export const deleteFeature = FeatureController.deleteFeature;
//# sourceMappingURL=featureController.js.map