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 }),
});