aboutsummaryrefslogtreecommitdiff
path: root/api/src/modules/settings/settings.controller.ts
diff options
context:
space:
mode:
Diffstat (limited to 'api/src/modules/settings/settings.controller.ts')
-rw-r--r--api/src/modules/settings/settings.controller.ts24
1 files changed, 24 insertions, 0 deletions
diff --git a/api/src/modules/settings/settings.controller.ts b/api/src/modules/settings/settings.controller.ts
new file mode 100644
index 0000000..479f476
--- /dev/null
+++ b/api/src/modules/settings/settings.controller.ts
@@ -0,0 +1,24 @@
+import type { FastifyReply, FastifyRequest } from 'fastify';
+import { getSettings, updateSettings } from './settings.repository.js';
+import type { UpdateSettingsBody } from './settings.schema.js';
+
+export async function getSettingsHandler(
+ request: FastifyRequest,
+ reply: FastifyReply,
+) {
+ const settings = await getSettings(request.server.db);
+ return reply.send(settings);
+}
+
+export async function updateSettingsHandler(
+ request: FastifyRequest<{ Body: UpdateSettingsBody }>,
+ reply: FastifyReply,
+) {
+ // Apenas admins podem atualizar as configurações globais
+ if (request.user?.role !== 'admin') {
+ return reply.forbidden('Apenas administradores podem alterar configurações do sistema.');
+ }
+
+ const updated = await updateSettings(request.server.db, request.body);
+ return reply.send(updated);
+}