mirror of
https://github.com/documenso/documenso.git
synced 2025-11-10 04:22:32 +10:00
82 lines
2.3 KiB
TypeScript
82 lines
2.3 KiB
TypeScript
import { TRPCError } from '@trpc/server';
|
|
|
|
import { createApiToken } from '@documenso/lib/server-only/public-api/create-api-token';
|
|
import { deleteTokenById } from '@documenso/lib/server-only/public-api/delete-api-token-by-id';
|
|
import { getUserTokens } from '@documenso/lib/server-only/public-api/get-all-user-tokens';
|
|
import { getApiTokenById } from '@documenso/lib/server-only/public-api/get-api-token-by-id';
|
|
|
|
import { authenticatedProcedure, router } from '../trpc';
|
|
import {
|
|
ZCreateTokenMutationSchema,
|
|
ZDeleteTokenByIdMutationSchema,
|
|
ZGetApiTokenByIdQuerySchema,
|
|
} from './schema';
|
|
|
|
export const apiTokenRouter = router({
|
|
getTokens: authenticatedProcedure.query(async ({ ctx }) => {
|
|
try {
|
|
return await getUserTokens({ userId: ctx.user.id });
|
|
} catch (e) {
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to find your API tokens. Please try again.',
|
|
});
|
|
}
|
|
}),
|
|
|
|
getTokenById: authenticatedProcedure
|
|
.input(ZGetApiTokenByIdQuerySchema)
|
|
.query(async ({ input, ctx }) => {
|
|
try {
|
|
const { id } = input;
|
|
|
|
return await getApiTokenById({
|
|
id,
|
|
userId: ctx.user.id,
|
|
});
|
|
} catch (e) {
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to find this API token. Please try again.',
|
|
});
|
|
}
|
|
}),
|
|
|
|
createToken: authenticatedProcedure
|
|
.input(ZCreateTokenMutationSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
try {
|
|
const { tokenName, expirationDate } = input;
|
|
|
|
return await createApiToken({
|
|
userId: ctx.user.id,
|
|
tokenName,
|
|
expirationDate,
|
|
});
|
|
} catch (e) {
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to create an API token. Please try again.',
|
|
});
|
|
}
|
|
}),
|
|
|
|
deleteTokenById: authenticatedProcedure
|
|
.input(ZDeleteTokenByIdMutationSchema)
|
|
.mutation(async ({ input, ctx }) => {
|
|
try {
|
|
const { id } = input;
|
|
|
|
return await deleteTokenById({
|
|
id,
|
|
userId: ctx.user.id,
|
|
});
|
|
} catch (e) {
|
|
throw new TRPCError({
|
|
code: 'BAD_REQUEST',
|
|
message: 'We were unable to delete this API Token. Please try again.',
|
|
});
|
|
}
|
|
}),
|
|
});
|