Change payments to be accessible wihtout loggin

This commit is contained in:
Adolfo Reyna
2025-07-17 09:32:49 -04:00
parent 64ca9df639
commit 100b0c2a8f
2 changed files with 37 additions and 13 deletions

View File

@@ -54,7 +54,7 @@ const sessionChecker = require('./middleware/sessionChecker');
// -- Private Routes // -- Private Routes
app.use('/user', sessionChecker, profileRoute); app.use('/user', sessionChecker, profileRoute);
app.use('/post', sessionChecker, postRoute); app.use('/post', sessionChecker, postRoute);
app.use('/payments', sessionChecker, paymentsRoute); app.use('/payments', paymentsRoute);
app.use('/bible', sessionChecker, bibleRoute); app.use('/bible', sessionChecker, bibleRoute);
app.use('/songs', sessionChecker, songsRoute); app.use('/songs', sessionChecker, songsRoute);
// -- Public Routes // -- Public Routes

View File

@@ -2,6 +2,7 @@ var express = require('express');
var router = express.Router(); var router = express.Router();
const DB = require("../mongoDB.js"); const DB = require("../mongoDB.js");
const mongo = require('mongodb');
//const Payments = require("../payments.js"); //const Payments = require("../payments.js");
const Stripe = require('stripe'); const Stripe = require('stripe');
const stripe = Stripe(process.env.STRIPE); const stripe = Stripe(process.env.STRIPE);
@@ -52,23 +53,46 @@ DB.getDB.then((DB) => {
], ],
}); });
//Register in DB // check if user is email or userid
const intent = { const isUserId = mongo.ObjectId.isValid(userid);
paymentIntent, const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
userid, const isEmail = emailRegex.test(userid.trim().toLowerCase());
price, console.log("isUserId: ", isUserId);
description, console.log("isEmail: ", isEmail);
client_secret: paymentIntent.client_secret, console.log("userid: ", userid);
};
DB.newIntent(intent);
if (isUserId) {
//Register in DB
const intent = {
paymentIntent,
userid,
price,
description,
client_secret: paymentIntent.client_secret,
};
DB.newIntent(intent);
return res.send({
clientSecret: paymentIntent.client_secret,
email: await DB.getUsernameByIdCache(userid),
price
});
}
if (isEmail) {
//Register in DB
return res.send({
clientSecret: paymentIntent.client_secret,
email: userid,
price
});
}
return res.send({ return res.send({
clientSecret: paymentIntent.client_secret, clientSecret: paymentIntent.client_secret,
email: await DB.getUsernameByIdCache(userid), email: 'guess',
price price
}); });
}; };
router.post("/create-payment-intent", intent); router.post("/create-payment-intent", intent);
router.post("/intent", intent); router.post("/intent", intent);
@@ -84,7 +108,7 @@ DB.getDB.then((DB) => {
}; };
//console.log(payment); //console.log(payment);
const intent = await DB.getIntent(result.client_secret); const intent = await DB.getIntent(result.client_secret);
if(intent.description === "Subscription 1 Month"){ if (intent.description === "Subscription 1 Month") {
//update profile subscription status //update profile subscription status
const profileid = getProfileId(req); const profileid = getProfileId(req);
const isSubscriptor = await DB.isSubscriptor(profileid); const isSubscriptor = await DB.isSubscriptor(profileid);