fix(pockethost): only unsubscribe if quantity is 0 and currently premium subscriber

This commit is contained in:
Ben Allfree 2025-10-08 22:59:16 +00:00
parent 7d442912c1
commit 82dbfb4d02
3 changed files with 19 additions and 9 deletions

View File

@ -679,9 +679,14 @@ const HandleLemonSqueezySale = (c) => {
audit(`LS`, `Signup processed.`, context); audit(`LS`, `Signup processed.`, context);
}; };
const signup_canceller = () => { const signup_canceller = () => {
userRec.set(`subscription`, `free`); if (userRec.get(`subscription`) !== `premium`) return;
userRec.set(`subscription_quantity`, 0); const currentQuantity = userRec.get(`subscription_quantity`);
userRec.set(`subscription_interval`, ``); const newQuantity = Math.max(currentQuantity - (context.quantity || 1), 0);
userRec.set(`subscription_quantity`, newQuantity);
if (newQuantity === 0) {
userRec.set(`subscription`, `free`);
userRec.set(`subscription_interval`, ``);
}
dao.saveRecord(userRec); dao.saveRecord(userRec);
log(`saved user`); log(`saved user`);
audit(`LS`, `Signup cancelled.`, context); audit(`LS`, `Signup cancelled.`, context);

View File

@ -9,9 +9,6 @@ routerAdd("POST", "/api/instance", (c) => {
routerAdd("DELETE", "/api/instance/:id", (c) => { routerAdd("DELETE", "/api/instance/:id", (c) => {
return require(`${__hooks}/mothership`).HandleInstanceDelete(c); return require(`${__hooks}/mothership`).HandleInstanceDelete(c);
}, $apis.requireRecordAuth()); }, $apis.requireRecordAuth());
routerAdd("POST", "/api/instance/:id/webhook/test", (c) => {
return require(`${__hooks}/mothership`).HandleInstanceWebhookTest(c);
}, $apis.requireRecordAuth());
routerAdd("GET", "/api/instance/resolve", (c) => { routerAdd("GET", "/api/instance/resolve", (c) => {
return require(`${__hooks}/mothership`).HandleInstanceResolve(c); return require(`${__hooks}/mothership`).HandleInstanceResolve(c);
}, $apis.requireAdminAuth()); }, $apis.requireAdminAuth());

View File

@ -265,9 +265,17 @@ export const HandleLemonSqueezySale = (c: echo.Context) => {
} }
const signup_canceller = () => { const signup_canceller = () => {
userRec.set(`subscription`, `free`) if (userRec.get(`subscription`) !== `premium`) {
userRec.set(`subscription_quantity`, 0) return
userRec.set(`subscription_interval`, ``) }
const currentQuantity = userRec.get(`subscription_quantity`)
const newQuantity = Math.max(currentQuantity - (context.quantity || 1), 0)
userRec.set(`subscription_quantity`, newQuantity)
if (newQuantity === 0) {
userRec.set(`subscription`, `free`)
userRec.set(`subscription_interval`, ``)
}
dao.saveRecord(userRec) dao.saveRecord(userRec)
log(`saved user`) log(`saved user`)
audit(`LS`, `Signup cancelled.`, context) audit(`LS`, `Signup cancelled.`, context)