save whole subscription object
This commit is contained in:
parent
dc1a5af77a
commit
fccb941e22
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue