From ffa70071845cf08933f2dae1bffcdaabfbf9ff32 Mon Sep 17 00:00:00 2001 From: Luke Vella Date: Mon, 3 Apr 2023 18:46:25 +0100 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20Use=20synchronous=20id=20g?= =?UTF-8?q?eneration=20(#645)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/utils/nanoid.ts | 13 ------------- packages/backend/session.ts | 2 +- packages/backend/trpc/context.ts | 2 +- packages/backend/trpc/routers/polls.ts | 6 +++--- packages/backend/trpc/routers/polls/comments.ts | 4 +--- packages/backend/trpc/routers/polls/demo.ts | 6 +++--- packages/backend/trpc/routers/polls/participants.ts | 2 +- packages/backend/trpc/trpc.ts | 2 +- packages/backend/utils/nanoid.ts | 2 +- 9 files changed, 12 insertions(+), 27 deletions(-) delete mode 100644 apps/web/src/utils/nanoid.ts diff --git a/apps/web/src/utils/nanoid.ts b/apps/web/src/utils/nanoid.ts deleted file mode 100644 index 11691adea..000000000 --- a/apps/web/src/utils/nanoid.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { customAlphabet } from "nanoid/async"; - -export const nanoid = customAlphabet( - "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", - 12, -); - -export const randomid = customAlphabet( - "0123456789abcdefghijklmnopqrstuvwxyz", - 12, -); - -export const generateOtp = customAlphabet("0123456789", 6); diff --git a/packages/backend/session.ts b/packages/backend/session.ts index 3c8494fe1..136557ce8 100644 --- a/packages/backend/session.ts +++ b/packages/backend/session.ts @@ -6,7 +6,7 @@ type UserSessionData = { id: string; isGuest: boolean }; declare module "iron-session" { export interface IronSessionData { - user: UserSessionData; + user?: UserSessionData; } } diff --git a/packages/backend/trpc/context.ts b/packages/backend/trpc/context.ts index e1e90b4c9..725ac6f0a 100644 --- a/packages/backend/trpc/context.ts +++ b/packages/backend/trpc/context.ts @@ -17,7 +17,7 @@ export async function createContext( isGuest: true, }; opts.req.session.user = user; - await opts.req.session.save(); + opts.req.session.save(); } return { user, session: opts.req.session }; } diff --git a/packages/backend/trpc/routers/polls.ts b/packages/backend/trpc/routers/polls.ts index 17587e3f9..94f796303 100644 --- a/packages/backend/trpc/routers/polls.ts +++ b/packages/backend/trpc/routers/polls.ts @@ -53,8 +53,8 @@ export const polls = router({ ) .mutation( async ({ ctx, input }): Promise<{ id: string; urlId: string }> => { - const adminUrlId = await nanoid(); - const participantUrlId = await nanoid(); + const adminUrlId = nanoid(); + const participantUrlId = nanoid(); let email = input.user?.email; let name = input.user?.name; @@ -83,7 +83,7 @@ export const polls = router({ title: true, }, data: { - id: await nanoid(), + id: nanoid(), title: input.title, timeZone: input.timeZone, location: input.location, diff --git a/packages/backend/trpc/routers/polls/comments.ts b/packages/backend/trpc/routers/polls/comments.ts index d697ceb3d..b6c0aea82 100644 --- a/packages/backend/trpc/routers/polls/comments.ts +++ b/packages/backend/trpc/routers/polls/comments.ts @@ -33,14 +33,12 @@ export const comments = router({ }), ) .mutation(async ({ ctx, input: { pollId, authorName, content } }) => { - const user = ctx.session.user; - const newComment = await prisma.comment.create({ data: { content, pollId, authorName, - userId: user.id, + userId: ctx.user.id, }, select: { id: true, diff --git a/packages/backend/trpc/routers/polls/demo.ts b/packages/backend/trpc/routers/polls/demo.ts index 27775cd18..57125ed74 100644 --- a/packages/backend/trpc/routers/polls/demo.ts +++ b/packages/backend/trpc/routers/polls/demo.ts @@ -27,7 +27,7 @@ const optionValues = ["2022-12-14", "2022-12-15", "2022-12-16", "2022-12-17"]; export const demo = router({ create: possiblyPublicProcedure.mutation(async () => { - const adminUrlId = await nanoid(); + const adminUrlId = nanoid(); const demoUser = { name: "John Example", email: "noreply@rallly.co" }; const options: Array<{ start: Date; id: string }> = []; @@ -72,13 +72,13 @@ export const demo = router({ await prisma.poll.create({ data: { - id: await nanoid(), + id: nanoid(), title: "Lunch Meeting", location: "Starbucks, 901 New York Avenue", description: `Hey everyone, please choose the dates when you are available to meet for our monthly get together. Looking forward to see you all!`, demo: true, adminUrlId, - participantUrlId: await nanoid(), + participantUrlId: nanoid(), user: { connectOrCreate: { where: { diff --git a/packages/backend/trpc/routers/polls/participants.ts b/packages/backend/trpc/routers/polls/participants.ts index d93fd3343..453f19175 100644 --- a/packages/backend/trpc/routers/polls/participants.ts +++ b/packages/backend/trpc/routers/polls/participants.ts @@ -61,7 +61,7 @@ export const participants = router({ }), ) .mutation(async ({ ctx, input: { pollId, votes, name, email } }) => { - const user = ctx.session.user; + const { user } = ctx; const poll = await prisma.poll.findUnique({ where: { id: pollId }, diff --git a/packages/backend/trpc/trpc.ts b/packages/backend/trpc/trpc.ts index 7ca006db5..6797d5256 100644 --- a/packages/backend/trpc/trpc.ts +++ b/packages/backend/trpc/trpc.ts @@ -17,7 +17,7 @@ export const publicProcedure = t.procedure; export const middleware = t.middleware; const checkAuthIfRequired = middleware(async ({ ctx, next }) => { - if (process.env.AUTH_REQUIRED === "true" && ctx.session.user.isGuest) { + if (process.env.AUTH_REQUIRED === "true" && ctx.user.isGuest) { throw new TRPCError({ code: "UNAUTHORIZED", message: "Login is required" }); } return next(); diff --git a/packages/backend/utils/nanoid.ts b/packages/backend/utils/nanoid.ts index 11691adea..81d8c5778 100644 --- a/packages/backend/utils/nanoid.ts +++ b/packages/backend/utils/nanoid.ts @@ -1,4 +1,4 @@ -import { customAlphabet } from "nanoid/async"; +import { customAlphabet } from "nanoid"; export const nanoid = customAlphabet( "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",