Files
GibSend/apps/web/src/server/api/routers/api.ts
KMKoushik d15495e2c7 fix build
2024-11-02 09:24:01 +11:00

45 lines
1004 B
TypeScript

import { z } from "zod";
import {
apiKeyProcedure,
createTRPCRouter,
teamProcedure,
} from "~/server/api/trpc";
import { addApiKey, deleteApiKey } from "~/server/service/api-service";
export const apiRouter = createTRPCRouter({
createToken: teamProcedure
.input(
z.object({ name: z.string(), permission: z.enum(["FULL", "SENDING"]) })
)
.mutation(async ({ ctx, input }) => {
return addApiKey({
name: input.name,
permission: input.permission,
teamId: ctx.team.id,
});
}),
getApiKeys: teamProcedure.query(async ({ ctx }) => {
const keys = await ctx.db.apiKey.findMany({
where: {
teamId: ctx.team.id,
},
select: {
id: true,
name: true,
permission: true,
partialToken: true,
lastUsed: true,
createdAt: true,
},
});
return keys;
}),
deleteApiKey: apiKeyProcedure.mutation(async ({ input }) => {
return deleteApiKey(input.id);
}),
});