From 3447e36448d5545db3d9a6743e4842abc169e584 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Mon, 24 Mar 2025 10:36:58 -0600 Subject: [PATCH 1/2] Album list page --- astro.config.mjs | 1 - src/components/Sidebar.astro | 1 - src/components/albumList/letterSection.astro | 24 +++++++++ src/pages/album/list/index.astro | 52 ++++++++++++++++++++ 4 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 src/components/albumList/letterSection.astro create mode 100644 src/pages/album/list/index.astro diff --git a/astro.config.mjs b/astro.config.mjs index d9f60dd..9efff5a 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -48,7 +48,6 @@ export default defineConfig({ output: 'server', adapter: node({ mode: 'standalone' }), redirects: { - '/album/list': { status: 307, destination: '/maintenance' }, '/anim': { status: 307, destination: '/maintenance' }, '/anim/[id]': { status: 307, destination: '/maintenance' }, '/anim/list': { status: 307, destination: '/maintenance' }, diff --git a/src/components/Sidebar.astro b/src/components/Sidebar.astro index 4fea549..144e8b7 100644 --- a/src/components/Sidebar.astro +++ b/src/components/Sidebar.astro @@ -19,7 +19,6 @@ const listClass = ---
- {m.lastAddedSidebar()} {m.getLucky()} {m.randomPull()}
diff --git a/src/components/albumList/letterSection.astro b/src/components/albumList/letterSection.astro new file mode 100644 index 0000000..23c6b49 --- /dev/null +++ b/src/components/albumList/letterSection.astro @@ -0,0 +1,24 @@ +--- +import { AlbumStatus } from '@prisma/client' +import prismaClient from 'utils/prisma-client' + +interface Props { + letter: string +} + +const { letter } = Astro.props +const albums = await prismaClient.albums.findMany({ + where: { status: AlbumStatus.SHOW, title: { startsWith: letter } }, + select: { id: true, title: true } +}) +--- + +
+ { + albums.map((a) => ( + + {a.title} + + )) + } +
diff --git a/src/pages/album/list/index.astro b/src/pages/album/list/index.astro new file mode 100644 index 0000000..1b78507 --- /dev/null +++ b/src/pages/album/list/index.astro @@ -0,0 +1,52 @@ +--- +import prismaClient from 'utils/prisma-client' +import * as m from 'paraglide/messages' +import { AlbumStatus } from '@prisma/client' + +import Sidebar from 'components/Sidebar.astro' +import BaseLayout from 'layouts/base.astro' +import AlbumBox from 'components/AlbumBox.astro' +import LetterSection from 'components/albumList/letterSection.astro' + +const letters: { letter: string; count: BigInt }[] = await prismaClient.$queryRaw` + SELECT DISTINCT UPPER(LEFT(title, 1)) AS letter, COUNT(*) AS count + FROM albums + WHERE status = 'SHOW' + GROUP BY letter + ORDER BY letter; + ` +--- + + +
+
+
+ { + letters.map((l) => ( + + )) + } +
+
+ { + letters.map((l) => ( +
+
{l.letter}
+
+ +
+
+ )) + } +
+
+ +
+
From a4b8cf5aabc59561e7524f8ca616f6c45d020be5 Mon Sep 17 00:00:00 2001 From: Jorge Vargas Date: Mon, 24 Mar 2025 10:44:48 -0600 Subject: [PATCH 2/2] Add unique to token field --- .../20250324164432_add_unique_token/migration.sql | 8 ++++++++ prisma/schema.prisma | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 prisma/migrations/20250324164432_add_unique_token/migration.sql diff --git a/prisma/migrations/20250324164432_add_unique_token/migration.sql b/prisma/migrations/20250324164432_add_unique_token/migration.sql new file mode 100644 index 0000000..54c1f94 --- /dev/null +++ b/prisma/migrations/20250324164432_add_unique_token/migration.sql @@ -0,0 +1,8 @@ +/* + Warnings: + + - A unique constraint covering the columns `[token]` on the table `session` will be added. If there are existing duplicate values, this will fail. + +*/ +-- CreateIndex +CREATE UNIQUE INDEX `session_token_key` ON `session`(`token`); diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 5970e08..0b04567 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -429,7 +429,7 @@ model users { model session { id String @id userId String @db.VarChar(255) - token String + token String @unique expiresAt DateTime ipAddress String? userAgent String?