Files
Minikura/apps/backend/src/routes/users.ts
2026-02-13 15:52:13 +07:00

31 lines
915 B
TypeScript

import type { UpdateUserInput } from "@minikura/db";
import { Elysia } from "elysia";
import { userService } from "../application/di-container";
import { requireAdmin, requireAuth } from "../lib/authorization";
export const userRoutes = new Elysia({ prefix: "/users" })
.use(requireAdmin)
.get("/", async () => {
const users = await userService.getAllUsers();
return users;
})
.use(requireAuth)
.get("/:id", async ({ params }) => {
const foundUser = await userService.getUserById(params.id);
return foundUser;
})
.use(requireAdmin)
.patch("/:id", async ({ params, body }) => {
const input = body as UpdateUserInput;
const updatedUser = await userService.updateUser(params.id, input);
return updatedUser;
})
.use(requireAuth)
.delete("/:id", async ({ params, user }) => {
await userService.deleteUser(user.id, params.id);
return { success: true };
});