From 2b44e54d99e5f17b69d8cbf1ed507264da03e814 Mon Sep 17 00:00:00 2001 From: pit Date: Thu, 5 Oct 2023 18:35:12 +0300 Subject: [PATCH] feat: subscriptions and documents page --- .../(dashboard)/admin/subscriptions/page.tsx | 65 +++++++++++++++++++ .../admin/users/[id]/documents/page.tsx | 3 + .../app/(dashboard)/admin/users/[id]/page.tsx | 1 - .../admin/get-all-subscriptions.ts | 13 ++++ 4 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx create mode 100644 apps/web/src/app/(dashboard)/admin/users/[id]/documents/page.tsx create mode 100644 packages/lib/server-only/admin/get-all-subscriptions.ts diff --git a/apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx b/apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx new file mode 100644 index 000000000..68ccf1ee4 --- /dev/null +++ b/apps/web/src/app/(dashboard)/admin/subscriptions/page.tsx @@ -0,0 +1,65 @@ +import Link from 'next/link'; + +import { findSubscriptions } from '@documenso/lib/server-only/admin/get-all-subscriptions'; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@documenso/ui/primitives/table'; + +export default async function Subscriptions() { + const subscriptions = await findSubscriptions(); + + return ( +
+

Manage subscriptions

+
+ + + + ID + Status + Created At + Ends On + User ID + + + + {subscriptions.map((subscription, index) => ( + + {subscription.id} + {subscription.status} + + {subscription.createdAt + ? new Date(subscription.createdAt).toLocaleDateString(undefined, { + weekday: 'long', + year: 'numeric', + month: 'long', + day: 'numeric', + }) + : 'N/A'} + + + {subscription.periodEnd + ? new Date(subscription.periodEnd).toLocaleDateString(undefined, { + weekday: 'long', + year: 'numeric', + month: 'long', + day: 'numeric', + }) + : 'N/A'} + + + {subscription.userId} + + + ))} + +
+
+
+ ); +} diff --git a/apps/web/src/app/(dashboard)/admin/users/[id]/documents/page.tsx b/apps/web/src/app/(dashboard)/admin/users/[id]/documents/page.tsx new file mode 100644 index 000000000..e17dc611b --- /dev/null +++ b/apps/web/src/app/(dashboard)/admin/users/[id]/documents/page.tsx @@ -0,0 +1,3 @@ +export default function UserDocuments() { + return

User docs

; +} diff --git a/apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx b/apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx index 5bbc7b340..802f2ec0c 100644 --- a/apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx +++ b/apps/web/src/app/(dashboard)/admin/users/[id]/page.tsx @@ -74,7 +74,6 @@ export default function UserPage({ params }: { params: { id: number } }) { duration: 5000, }); } catch (e) { - console.log(e); toast({ title: 'Error', description: 'An error occurred while updating your profile.', diff --git a/packages/lib/server-only/admin/get-all-subscriptions.ts b/packages/lib/server-only/admin/get-all-subscriptions.ts new file mode 100644 index 000000000..5080c4c22 --- /dev/null +++ b/packages/lib/server-only/admin/get-all-subscriptions.ts @@ -0,0 +1,13 @@ +import { prisma } from '@documenso/prisma'; + +export const findSubscriptions = async () => { + return prisma.subscription.findMany({ + select: { + id: true, + status: true, + createdAt: true, + periodEnd: true, + userId: true, + }, + }); +};