sendou.ink/app/calendar/api.ts
Kalle a812561a83
Free agent filters + free agents inside app (#401)
* new location

* free agents modal use trpc

* extract components from FreeAgentsPage

* trpc for likes

* unify naming

* extract filters component

* top 500 filter

* plus server membeship filter

* weapon filter

* all filters implemented

* reset filters

* filters final look

* filters from query params

* fetch fa posts statically
2021-04-10 15:19:09 +03:00

42 lines
1.1 KiB
TypeScript

import { createRouter } from "pages/api/trpc/[trpc]";
import { throwIfNotLoggedIn } from "utils/api";
import { eventSchema } from "utils/validators/event";
import * as z from "zod";
import service from "./service";
const calendarApi = createRouter()
.query("events", {
resolve() {
return service.events();
},
})
.mutation("addEvent", {
input: eventSchema,
resolve({ ctx, input }) {
const user = throwIfNotLoggedIn(ctx.user);
return service.addEvent({ input, userId: user.id });
},
})
.mutation("editEvent", {
input: z.object({ event: eventSchema, eventId: z.number() }),
resolve({ ctx, input }) {
const user = throwIfNotLoggedIn(ctx.user);
console.log("input", input);
return service.editEvent({
...input,
userId: user.id,
});
},
})
.mutation("deleteEvent", {
input: z.object({ eventId: z.number() }),
resolve({ ctx, input }) {
const user = throwIfNotLoggedIn(ctx.user);
return service.deleteEvent({
eventId: input.eventId,
userId: user.id,
});
},
});
export default calendarApi;