fix(cloud): use prev_licence_key for upgrade/downgrade handler
This commit is contained in:
@@ -127,7 +127,16 @@ export default withApiLogging(
|
|||||||
status: "inactive",
|
status: "inactive",
|
||||||
});
|
});
|
||||||
if (sub.referenceId) {
|
if (sub.referenceId) {
|
||||||
await workspaceRepo.update(db, sub.referenceId, { plan: "free" });
|
const allSubs = await subscriptionRepo.getByReferenceId(
|
||||||
|
db,
|
||||||
|
sub.referenceId,
|
||||||
|
);
|
||||||
|
const hasActiveSub = allSubs.some(
|
||||||
|
(s) => s.id !== sub.id && s.status === "active",
|
||||||
|
);
|
||||||
|
if (!hasActiveSub) {
|
||||||
|
await workspaceRepo.update(db, sub.referenceId, { plan: "free" });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -135,9 +144,10 @@ export default withApiLogging(
|
|||||||
|
|
||||||
case "upgrade":
|
case "upgrade":
|
||||||
case "downgrade": {
|
case "downgrade": {
|
||||||
|
const lookupKey = prev_license_key ?? license_key;
|
||||||
const sub = await subscriptionRepo.getByPartnerLicenseKey(
|
const sub = await subscriptionRepo.getByPartnerLicenseKey(
|
||||||
db,
|
db,
|
||||||
license_key,
|
lookupKey,
|
||||||
);
|
);
|
||||||
if (sub) {
|
if (sub) {
|
||||||
const cfg = tierConfig(tier);
|
const cfg = tierConfig(tier);
|
||||||
@@ -147,7 +157,13 @@ export default withApiLogging(
|
|||||||
partnerTier: tier,
|
partnerTier: tier,
|
||||||
seats: cfg.seats,
|
seats: cfg.seats,
|
||||||
unlimitedSeats: cfg.unlimitedSeats,
|
unlimitedSeats: cfg.unlimitedSeats,
|
||||||
|
referenceId: sub.referenceId ?? undefined,
|
||||||
});
|
});
|
||||||
|
if (prev_license_key) {
|
||||||
|
await subscriptionRepo.updateById(db, sub.id, {
|
||||||
|
status: "inactive",
|
||||||
|
});
|
||||||
|
}
|
||||||
if (sub.referenceId) {
|
if (sub.referenceId) {
|
||||||
await workspaceRepo.update(db, sub.referenceId, { plan: cfg.plan });
|
await workspaceRepo.update(db, sub.referenceId, { plan: cfg.plan });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user