45 lines
1004 B
TypeScript
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);
|
|
}),
|
|
});
|