| import { |
| deleteTrackerProjectSchema, |
| getTrackerProjectByIdSchema, |
| getTrackerProjectsSchema, |
| upsertTrackerProjectSchema, |
| } from "@api/schemas/tracker-projects"; |
| import { createTRPCRouter, protectedProcedure } from "@api/trpc/init"; |
| import { |
| deleteTrackerProject, |
| getTrackerProjectById, |
| getTrackerProjects, |
| upsertTrackerProject, |
| } from "@midday/db/queries"; |
|
|
| export const trackerProjectsRouter = createTRPCRouter({ |
| get: protectedProcedure |
| .input(getTrackerProjectsSchema.optional()) |
| .query(async ({ input, ctx: { db, teamId } }) => { |
| return getTrackerProjects(db, { |
| ...input, |
| teamId: teamId!, |
| }); |
| }), |
|
|
| upsert: protectedProcedure |
| .input(upsertTrackerProjectSchema) |
| .mutation(async ({ input, ctx: { db, teamId, session } }) => { |
| return upsertTrackerProject(db, { |
| ...input, |
| teamId: teamId!, |
| userId: session.user.id, |
| }); |
| }), |
|
|
| delete: protectedProcedure |
| .input(deleteTrackerProjectSchema) |
| .mutation(async ({ input, ctx: { db, teamId } }) => { |
| return deleteTrackerProject(db, { |
| ...input, |
| teamId: teamId!, |
| }); |
| }), |
|
|
| getById: protectedProcedure |
| .input(getTrackerProjectByIdSchema) |
| .query(async ({ input, ctx: { db, teamId } }) => { |
| return getTrackerProjectById(db, { |
| ...input, |
| teamId: teamId!, |
| }); |
| }), |
| }); |
|
|