Files
CapaKraken/packages/api/src/router/notification.ts
T

112 lines
3.5 KiB
TypeScript

import { createTRPCRouter, managerProcedure, protectedProcedure } from "../trpc.js";
import {
AssignTaskInputSchema,
CreateBroadcastInputSchema,
CreateManagedNotificationInputSchema,
CreateReminderInputSchema,
CreateTaskInputSchema,
ListBroadcastsInputSchema,
ListNotificationTasksInputSchema,
ListRemindersInputSchema,
MarkNotificationReadInputSchema,
NotificationIdInputSchema,
NotificationListInputSchema,
UpdateNotificationTaskStatusInputSchema,
UpdateReminderInputSchema,
assignTask,
countUnreadNotifications,
createBroadcast,
createManagedNotification,
createReminder,
createTask,
deleteNotification,
deleteReminder,
executeNotificationTaskAction,
getBroadcastById,
getNotificationTaskCounts,
getNotificationTaskDetail,
listBroadcasts,
listNotificationTasks,
listNotifications,
listReminders,
markNotificationsRead,
updateNotificationTaskStatus,
updateReminder,
} from "./notification-procedure-support.js";
export const notificationRouter = createTRPCRouter({
list: protectedProcedure
.input(NotificationListInputSchema)
.query(({ ctx, input }) => listNotifications(ctx, input)),
unreadCount: protectedProcedure
.query(({ ctx }) => countUnreadNotifications(ctx)),
markRead: protectedProcedure
.input(MarkNotificationReadInputSchema)
.mutation(({ ctx, input }) => markNotificationsRead(ctx, input)),
create: managerProcedure
.input(CreateManagedNotificationInputSchema)
.mutation(({ ctx, input }) => createManagedNotification(ctx, input)),
listTasks: protectedProcedure
.input(ListNotificationTasksInputSchema)
.query(({ ctx, input }) => listNotificationTasks(ctx, input)),
taskCounts: protectedProcedure
.query(({ ctx }) => getNotificationTaskCounts(ctx)),
getTaskDetail: protectedProcedure
.input(NotificationIdInputSchema)
.query(({ ctx, input }) => getNotificationTaskDetail(ctx, input)),
updateTaskStatus: protectedProcedure
.input(UpdateNotificationTaskStatusInputSchema)
.mutation(({ ctx, input }) => updateNotificationTaskStatus(ctx, input)),
executeTaskAction: protectedProcedure
.input(NotificationIdInputSchema)
.mutation(({ ctx, input }) => executeNotificationTaskAction(ctx, input)),
createReminder: protectedProcedure
.input(CreateReminderInputSchema)
.mutation(({ ctx, input }) => createReminder(ctx, input)),
updateReminder: protectedProcedure
.input(UpdateReminderInputSchema)
.mutation(({ ctx, input }) => updateReminder(ctx, input)),
deleteReminder: protectedProcedure
.input(NotificationIdInputSchema)
.mutation(({ ctx, input }) => deleteReminder(ctx, input)),
listReminders: protectedProcedure
.input(ListRemindersInputSchema)
.query(({ ctx, input }) => listReminders(ctx, input)),
createBroadcast: managerProcedure
.input(CreateBroadcastInputSchema)
.mutation(({ ctx, input }) => createBroadcast(ctx, input)),
listBroadcasts: managerProcedure
.input(ListBroadcastsInputSchema)
.query(({ ctx, input }) => listBroadcasts(ctx, input)),
getBroadcastById: managerProcedure
.input(NotificationIdInputSchema)
.query(({ ctx, input }) => getBroadcastById(ctx, input)),
createTask: managerProcedure
.input(CreateTaskInputSchema)
.mutation(({ ctx, input }) => createTask(ctx, input)),
assignTask: managerProcedure
.input(AssignTaskInputSchema)
.mutation(({ ctx, input }) => assignTask(ctx, input)),
delete: protectedProcedure
.input(NotificationIdInputSchema)
.mutation(({ ctx, input }) => deleteNotification(ctx, input)),
});