mirror of
https://github.com/documenso/documenso.git
synced 2025-11-12 15:53:02 +10:00
feat: add the admin page
This commit is contained in:
5
packages/lib/server-only/admin/get-documents.ts
Normal file
5
packages/lib/server-only/admin/get-documents.ts
Normal file
@ -0,0 +1,5 @@
|
||||
import { prisma } from '@documenso/prisma';
|
||||
|
||||
export const getDocsCount = async () => {
|
||||
return await prisma.document.count();
|
||||
};
|
||||
20
packages/lib/server-only/admin/get-recipients.ts
Normal file
20
packages/lib/server-only/admin/get-recipients.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import { prisma } from '@documenso/prisma';
|
||||
import { ReadStatus, SendStatus, SigningStatus } from '@documenso/prisma/client';
|
||||
|
||||
export const getRecipientsStats = async () => {
|
||||
const results = await prisma.recipient.groupBy({
|
||||
by: ['readStatus', 'signingStatus', 'sendStatus'],
|
||||
_count: true,
|
||||
});
|
||||
|
||||
return {
|
||||
TOTAL_RECIPIENTS: results.length,
|
||||
[ReadStatus.OPENED]: results.filter((r) => r.readStatus === 'OPENED')?.[0]?._count ?? 0,
|
||||
[ReadStatus.NOT_OPENED]: results.filter((r) => r.readStatus === 'NOT_OPENED')?.[0]?._count ?? 0,
|
||||
[SigningStatus.SIGNED]: results.filter((r) => r.signingStatus === 'SIGNED')?.[0]?._count ?? 0,
|
||||
[SigningStatus.NOT_SIGNED]:
|
||||
results.filter((r) => r.signingStatus === 'NOT_SIGNED')?.[0]?._count ?? 0,
|
||||
[SendStatus.SENT]: results.filter((r) => r.sendStatus === 'SENT')?.[0]?._count ?? 0,
|
||||
[SendStatus.NOT_SENT]: results.filter((r) => r.sendStatus === 'NOT_SENT')?.[0]?._count ?? 0,
|
||||
};
|
||||
};
|
||||
18
packages/lib/server-only/admin/get-users.ts
Normal file
18
packages/lib/server-only/admin/get-users.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import { prisma } from '@documenso/prisma';
|
||||
import { SubscriptionStatus } from '@documenso/prisma/client';
|
||||
|
||||
export const getUsersCount = async () => {
|
||||
return await prisma.user.count();
|
||||
};
|
||||
|
||||
export const getUsersWithSubscriptionsCount = async () => {
|
||||
return await prisma.user.count({
|
||||
where: {
|
||||
Subscription: {
|
||||
some: {
|
||||
status: SubscriptionStatus.ACTIVE,
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user