diff --git a/src/controllers/sessionsController.ts b/src/controllers/sessionsController.ts index b9ae7b2..04869ca 100644 --- a/src/controllers/sessionsController.ts +++ b/src/controllers/sessionsController.ts @@ -15,7 +15,18 @@ const sessionsController = new Elysia({ prefix: "/sessions" }) return await getSessions(auth, query); }, { - query: t.Object({ limit: t.Optional(t.Number()) }), + query: t.Partial( + t.Object({ + limit: t.Number(), + status: t.Union([ + t.Literal("starting"), + t.Literal("started"), + t.Literal("restarting"), + t.Literal("ending"), + t.Literal("ended"), + ]), + }) + ), } ) .get("/:id", async ({ params }) => { diff --git a/src/services/sessions/get.ts b/src/services/sessions/get.ts index c1e55ef..33aec84 100644 --- a/src/services/sessions/get.ts +++ b/src/services/sessions/get.ts @@ -6,15 +6,17 @@ import type { AuthContext } from "../../middlewares/auth"; async function getSessions( auth: AuthContext, - query?: { + query: { limit?: number; + status?: "starting" | "started" | "restarting" | "ending" | "ended"; } ) { try { const sessions = await db.query.sessionsTable.findMany({ where: and( - eq(sessionsTable.ownerId, auth.userId), - eq(sessionsTable.companyId, auth.companyId) + // eq(sessionsTable.ownerId, auth.userId), + eq(sessionsTable.companyId, auth.companyId), + query.status ? eq(sessionsTable.status, query.status) : undefined ), with: { client: true,