Skip to content

Commit 6deae8b

Browse files
author
Your Name
committed
Stripe In Practice Course
1 parent ac8a94d commit 6deae8b

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

server/checkout.route.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11

22
import {Request, Response} from "express";
3+
import {getDocData} from './database';
34

45
const stripe = require("stripe")(process.env.STRIPE_SECRET_KEY);
56

@@ -22,10 +23,8 @@ export async function createCheckoutSession(req: Request, res: Response) {
2223
let sessionConfig;
2324

2425
if (info.courseId) {
25-
26-
27-
28-
sessionConfig = setupPurchaseCourseSession(info);
26+
const course = await getDocData(`courses/${info.courseId}`);
27+
sessionConfig = setupPurchaseCourseSession(info, course);
2928
}
3029

3130
console.log(sessionConfig);
@@ -47,13 +46,13 @@ export async function createCheckoutSession(req: Request, res: Response) {
4746

4847
}
4948

50-
function setupPurchaseCourseSession(info: RequestInfo) {
49+
function setupPurchaseCourseSession(info: RequestInfo, course) {
5150
const config = setupBaseSessionConfig(info);
5251
config.line_items = [
5352
{
54-
name: 'Stripe Payments In Practice',
55-
description: 'Build your own ecommerce store & membership website with Firebase, Stripe and Express',
56-
amount: 5000,
53+
name: course.titles.description,
54+
description: course.titles.longDescription,
55+
amount: course.price * 100,
5756
currency: 'usd',
5857
quantity: 1
5958
}

server/database.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
3+
const Firestore = require('@google-cloud/firestore');
4+
5+
const serviceAccountPath = `./service-accounts/${process.env.SERVICE_ACCOUNT_FILE_NAME}`;
6+
7+
8+
export const db = new Firestore({
9+
projectId: process.env.PROJECT_ID,
10+
keyFilename: serviceAccountPath
11+
});
12+
13+
14+
export async function getDocData(docPath) {
15+
const snap = await db.doc(docPath).get();
16+
return snap.data();
17+
}
18+
19+
20+

0 commit comments

Comments
 (0)