All files / src/lib organization.ts

0% Statements 0/24
0% Branches 0/1
0% Functions 0/1
0% Lines 0/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30                                                           
import { logger } from "@snapback/infrastructure";
import { setSubscriptionSeats } from "@snapback/integrations/stripe";
import * as drizzle from "@snapback/platform";
 
export async function updateSeatsInOrganizationSubscription(organizationId: string) {
	const organization = await drizzle.getOrganizationWithPurchasesAndMembersCount(organizationId);
 
	if (!organization?.purchases || !Array.isArray(organization.purchases) || organization.purchases.length === 0) {
		return;
	}
 
	const activeSubscription = organization.purchases.find((purchase: any) => purchase.type === "SUBSCRIPTION");
 
	if (!activeSubscription?.subscriptionId) {
		return;
	}
 
	try {
		await setSubscriptionSeats({
			id: activeSubscription.subscriptionId,
			seats: organization.membersCount,
		});
	} catch (error) {
		logger.error("Could not update seats in organization subscription", {
			organizationId,
			error,
		});
	}
}