mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 00:03:33 +10:00
feat: create a banner with custom text by admin
This commit is contained in:
27
packages/trpc/server/banner-router/router.ts
Normal file
27
packages/trpc/server/banner-router/router.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import { TRPCError } from '@trpc/server';
|
||||
|
||||
import { upsertBanner } from '@documenso/lib/server-only/banner/upsert-banner';
|
||||
|
||||
import { adminProcedure, router } from '../trpc';
|
||||
import { ZCreateBannerByAdminSchema } from './schema';
|
||||
|
||||
export const bannerRouter = router({
|
||||
updateBanner: adminProcedure
|
||||
.input(ZCreateBannerByAdminSchema)
|
||||
.mutation(async ({ input, ctx }) => {
|
||||
const { show, text } = input;
|
||||
|
||||
try {
|
||||
return await upsertBanner({
|
||||
userId: ctx.user.id,
|
||||
show,
|
||||
text,
|
||||
});
|
||||
} catch (err) {
|
||||
throw new TRPCError({
|
||||
code: 'BAD_REQUEST',
|
||||
message: 'We were unable to update your banner. Please try again.',
|
||||
});
|
||||
}
|
||||
}),
|
||||
});
|
||||
8
packages/trpc/server/banner-router/schema.ts
Normal file
8
packages/trpc/server/banner-router/schema.ts
Normal file
@ -0,0 +1,8 @@
|
||||
import z from 'zod';
|
||||
|
||||
export const ZCreateBannerByAdminSchema = z.object({
|
||||
text: z.string().optional(),
|
||||
show: z.boolean().optional(),
|
||||
});
|
||||
|
||||
export type TCreateBannerByAdminSchema = z.infer<typeof ZCreateBannerByAdminSchema>;
|
||||
@ -1,5 +1,6 @@
|
||||
import { adminRouter } from './admin-router/router';
|
||||
import { authRouter } from './auth-router/router';
|
||||
import { bannerRouter } from './banner-router/router';
|
||||
import { cryptoRouter } from './crypto/router';
|
||||
import { documentRouter } from './document-router/router';
|
||||
import { fieldRouter } from './field-router/router';
|
||||
@ -14,6 +15,7 @@ import { twoFactorAuthenticationRouter } from './two-factor-authentication-route
|
||||
|
||||
export const appRouter = router({
|
||||
auth: authRouter,
|
||||
banner: bannerRouter,
|
||||
crypto: cryptoRouter,
|
||||
profile: profileRouter,
|
||||
document: documentRouter,
|
||||
|
||||
Reference in New Issue
Block a user