mirror of
https://github.com/documenso/documenso.git
synced 2025-11-17 02:01:33 +10:00
chore: remove duplicateS
This commit is contained in:
@ -53,37 +53,67 @@ export const getSigningVolume = async ({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const subscriptionData = activeSubscriptions.map((subscription) => {
|
const userSubscriptionsMap = new Map();
|
||||||
|
const teamSubscriptionsMap = new Map();
|
||||||
|
|
||||||
|
activeSubscriptions.forEach((subscription) => {
|
||||||
const isTeam = !!subscription.teamId;
|
const isTeam = !!subscription.teamId;
|
||||||
return {
|
|
||||||
|
if (isTeam && subscription.teamId) {
|
||||||
|
if (!teamSubscriptionsMap.has(subscription.teamId)) {
|
||||||
|
teamSubscriptionsMap.set(subscription.teamId, {
|
||||||
|
id: subscription.id,
|
||||||
|
planId: subscription.planId,
|
||||||
|
teamId: subscription.teamId,
|
||||||
|
name: subscription.team?.name || '',
|
||||||
|
email: subscription.team?.teamEmail?.email || `Team ${subscription.team?.id}`,
|
||||||
|
createdAt: subscription.team?.createdAt,
|
||||||
|
isTeam: true,
|
||||||
|
subscriptionIds: [subscription.id],
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
const existingTeam = teamSubscriptionsMap.get(subscription.teamId);
|
||||||
|
existingTeam.subscriptionIds.push(subscription.id);
|
||||||
|
}
|
||||||
|
} else if (subscription.userId) {
|
||||||
|
if (!userSubscriptionsMap.has(subscription.userId)) {
|
||||||
|
userSubscriptionsMap.set(subscription.userId, {
|
||||||
id: subscription.id,
|
id: subscription.id,
|
||||||
planId: subscription.planId,
|
planId: subscription.planId,
|
||||||
userId: subscription.userId,
|
userId: subscription.userId,
|
||||||
teamId: subscription.teamId,
|
name: subscription.user?.name || '',
|
||||||
name: isTeam ? subscription.team?.name : subscription.user?.name || '',
|
email: subscription.user?.email || '',
|
||||||
email: isTeam
|
createdAt: subscription.user?.createdAt,
|
||||||
? subscription.team?.teamEmail?.email || `Team ${subscription.team?.id}`
|
isTeam: false,
|
||||||
: subscription.user?.email || '',
|
subscriptionIds: [subscription.id],
|
||||||
createdAt: isTeam ? subscription.team?.createdAt : subscription.user?.createdAt,
|
});
|
||||||
isTeam,
|
} else {
|
||||||
};
|
const existingUser = userSubscriptionsMap.get(subscription.userId);
|
||||||
|
existingUser.subscriptionIds.push(subscription.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const consolidatedSubscriptions = [
|
||||||
|
...Array.from(userSubscriptionsMap.values()),
|
||||||
|
...Array.from(teamSubscriptionsMap.values()),
|
||||||
|
];
|
||||||
|
|
||||||
const filteredSubscriptions = search
|
const filteredSubscriptions = search
|
||||||
? subscriptionData.filter((sub) => {
|
? consolidatedSubscriptions.filter((sub) => {
|
||||||
const searchLower = search.toLowerCase();
|
const searchLower = search.toLowerCase();
|
||||||
return (
|
return (
|
||||||
sub.name?.toLowerCase().includes(searchLower) ||
|
sub.name?.toLowerCase().includes(searchLower) ||
|
||||||
sub.email?.toLowerCase().includes(searchLower)
|
sub.email?.toLowerCase().includes(searchLower)
|
||||||
);
|
);
|
||||||
})
|
})
|
||||||
: subscriptionData;
|
: consolidatedSubscriptions;
|
||||||
|
|
||||||
const leaderboardWithVolume = await Promise.all(
|
const leaderboardWithVolume = await Promise.all(
|
||||||
filteredSubscriptions.map(async (subscription) => {
|
filteredSubscriptions.map(async (subscription) => {
|
||||||
let signingVolume = 0;
|
let signingVolume = 0;
|
||||||
|
|
||||||
if (subscription.userId && !subscription.teamId) {
|
if (subscription.userId && !subscription.isTeam) {
|
||||||
const personalCount = await prisma.document.count({
|
const personalCount = await prisma.document.count({
|
||||||
where: {
|
where: {
|
||||||
userId: subscription.userId,
|
userId: subscription.userId,
|
||||||
|
|||||||
Reference in New Issue
Block a user