From e4e78411097a61473400a25cfbe88b2fa6884726 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji <88056492+atridadl@users.noreply.github.com> Date: Thu, 29 Jun 2023 16:52:23 -0600 Subject: [PATCH] 1.2.2 --- package.json | 2 +- src/pages/admin/index.tsx | 38 ++++++++++++++++++++++++++----- src/server/api/routers/session.ts | 11 ++++++++- src/server/redis.ts | 5 +--- 4 files changed, 44 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 2347a42..19f1eae 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sprintpadawan", - "version": "1.2.1", + "version": "1.2.2", "description": "Plan. Sprint. Repeat.", "private": true, "scripts": { diff --git a/src/pages/admin/index.tsx b/src/pages/admin/index.tsx index 189605d..5a67e2a 100644 --- a/src/pages/admin/index.tsx +++ b/src/pages/admin/index.tsx @@ -106,6 +106,14 @@ const AdminBody: React.FC = () => { }, }); + const clearSessionsByUserMutation = api.session.deleteAllByUserId.useMutation( + { + onSuccess: async () => { + await refetchData(); + }, + } + ); + const clearSessionsMutation = api.session.deleteAll.useMutation({ onSuccess: async () => { await refetchData(); @@ -122,8 +130,12 @@ const AdminBody: React.FC = () => { await deleteUserMutation.mutateAsync({ userId }); }; - const clearSessionsHandler = async (userId: string) => { - await clearSessionsMutation.mutateAsync({ userId }); + const clearSessionsByUserHandler = async (userId: string) => { + await clearSessionsByUserMutation.mutateAsync({ userId }); + }; + + const clearSessionsHandler = async () => { + await clearSessionsMutation.mutateAsync(); }; const setUserRoleHandler = async (userId: string, role: Role) => { @@ -184,9 +196,21 @@ const AdminBody: React.FC = () => { votesCountFetching ? ( ) : ( - + <> + + + + )}
@@ -258,7 +282,9 @@ const AdminBody: React.FC = () => { diff --git a/src/server/api/routers/session.ts b/src/server/api/routers/session.ts index 5eb9327..6670d32 100644 --- a/src/server/api/routers/session.ts +++ b/src/server/api/routers/session.ts @@ -4,7 +4,7 @@ import { env } from "~/env.mjs"; import { redis } from "~/server/redis"; export const sessionRouter = createTRPCRouter({ - deleteAll: protectedProcedure + deleteAllByUserId: protectedProcedure .input( z.object({ userId: z.string(), @@ -23,4 +23,13 @@ export const sessionRouter = createTRPCRouter({ return !!sessions; }), + deleteAll: protectedProcedure.mutation(async ({ ctx, input }) => { + const sessions = await ctx.prisma.session.deleteMany(); + + if (!!sessions) { + await redis.del(`${env.APP_ENV}_kv_userlist_admin`); + } + + return !!sessions; + }), }); diff --git a/src/server/redis.ts b/src/server/redis.ts index 81a08fa..2f599b4 100644 --- a/src/server/redis.ts +++ b/src/server/redis.ts @@ -1,9 +1,6 @@ import { Redis } from "@upstash/redis"; -import { env } from "~/env.mjs"; import https from "https"; -export const redis = new Redis({ - url: env.UPSTASH_REDIS_REST_URL, - token: env.UPSTASH_REDIS_REST_TOKEN, +export const redis = Redis.fromEnv({ agent: new https.Agent({ keepAlive: true }), });