save whole subscription object

This commit is contained in:
adueck 2022-10-15 09:56:58 +05:00
parent dc1a5af77a
commit fccb941e22
6 changed files with 11 additions and 10 deletions

View File

@ -106,7 +106,7 @@ export async function updateLingdocsUser(uuid: T.UUID, toUpdate:
wordlistDbName: T.WordlistDbName,
couchDbPassword: T.UserDbPassword,
upgradeToStudentRequest: undefined,
subscriptionId: string | undefined,
subscription?: T.StripeSubscription,
} |
{
level: "basic",

View File

@ -28,7 +28,7 @@ const student: AT.LingdocsUser = {
"lastActive":1630414108552 as AT.TimeStamp,
"couchDbPassword": "12345" as AT.UserDbPassword,
"wordlistDbName": "jim-db" as AT.WordlistDbName,
subscriptionId: undefined,
subscription: undefined,
};
const admin: AT.LingdocsUser = {
@ -46,7 +46,7 @@ const admin: AT.LingdocsUser = {
"lastActive":1630414108552 as AT.TimeStamp,
"couchDbPassword": "12345" as AT.UserDbPassword,
"wordlistDbName": "jim-db" as AT.WordlistDbName,
subscriptionId: undefined,
subscription: undefined,
};
const editor: AT.LingdocsUser = {
@ -63,7 +63,7 @@ const editor: AT.LingdocsUser = {
"lastActive":1630414108552 as AT.TimeStamp,
"couchDbPassword": "12345" as AT.UserDbPassword,
"wordlistDbName": "jim-db" as AT.WordlistDbName,
subscriptionId: undefined,
subscription: undefined,
};
// @ts-ignore

View File

@ -57,7 +57,7 @@ export function getEmailFromGoogleProfile(profile: T.GoogleProfile): { email: st
};
}
export async function upgradeUser(userId: T.UUID, subscriptionId?: string): Promise<T.UpgradeUserResponse> {
export async function upgradeUser(userId: T.UUID, subscription?: T.StripeSubscription): Promise<T.UpgradeUserResponse> {
// add user to couchdb authentication db
const { password, userDbName } = await addCouchDbAuthUser(userId);
// // create user db
@ -67,7 +67,7 @@ export async function upgradeUser(userId: T.UUID, subscriptionId?: string): Prom
wordlistDbName: userDbName,
couchDbPassword: password,
upgradeToStudentRequest: undefined,
subscriptionId,
subscription,
});
if (user.email) {
sendAccountUpgradeMessage(user).catch(console.error);

View File

@ -196,8 +196,8 @@ const authRouter = (passport: PassportStatic) => {
if (!req.user) {
return res.redirect("/");
}
await downgradeUser(req.user.userId, "subscriptionId" in req.user
? req.user.subscriptionId
await downgradeUser(req.user.userId, "subscription" in req.user
? req.user.subscription?.id
: undefined);
res.redirect("/");
} catch (e) {

View File

@ -54,7 +54,7 @@ paymentRouter.post(
subscription = event.data.object;
status = subscription.status;
console.log(`Upgrading user ${userId}.`);
await upgradeUser(userId, subscription.id);
await upgradeUser(userId, subscription);
// TODO: save subscription to db
break;
default:

View File

@ -65,7 +65,7 @@
<div class="d-flex flex-row">
<form action="/payment/create-checkout-session" method="POST">
<input type="hidden" name="priceId" value="price_1Lt0XdJnpCQCjf9pM9qqdyt6" />
<button class="btn btn-sm btn-outline-secondary" type="submit">$1/month</button>
<button class="btn btn-sm btn-outline-secondary mr-4" type="submit">$1/month</button>
</form>
<form action="/payment/create-checkout-session" method="POST">
<input type="hidden" name="priceId" value="price_1Lt0XdJnpCQCjf9pHk1MQqCC" />
@ -75,6 +75,7 @@
<% } %>
<% } %>
<% if (user.tester && user.level === "student") { %>
<p>Downgrade your account to cancel your subscription</p>
<form action="/downgradeToBasic" method="POST">
<button class="btn btn-sm btn-secondary" type="submit">Downgrade Account</button>
</form>