backend logging
This commit is contained in:
@@ -2,6 +2,7 @@ const express = require("express");
|
||||
const { authenticateToken } = require("../middleware/auth");
|
||||
const { User, Item } = require("../models");
|
||||
const StripeService = require("../services/stripeService");
|
||||
const logger = require("../utils/logger");
|
||||
const router = express.Router();
|
||||
|
||||
// Get checkout session status
|
||||
@@ -11,6 +12,14 @@ router.get("/checkout-session/:sessionId", async (req, res) => {
|
||||
|
||||
const session = await StripeService.getCheckoutSession(sessionId);
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Stripe checkout session retrieved", {
|
||||
sessionId: sessionId,
|
||||
status: session.status,
|
||||
payment_status: session.payment_status,
|
||||
metadata: session.metadata,
|
||||
});
|
||||
|
||||
res.json({
|
||||
status: session.status,
|
||||
payment_status: session.payment_status,
|
||||
@@ -19,7 +28,12 @@ router.get("/checkout-session/:sessionId", async (req, res) => {
|
||||
metadata: session.metadata,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error retrieving checkout session:", error);
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Stripe checkout session retrieval failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
sessionId: sessionId,
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -51,12 +65,23 @@ router.post("/accounts", authenticateToken, async (req, res) => {
|
||||
stripeConnectedAccountId: account.id,
|
||||
});
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Stripe connected account created", {
|
||||
userId: req.user.id,
|
||||
stripeConnectedAccountId: account.id,
|
||||
});
|
||||
|
||||
res.json({
|
||||
stripeConnectedAccountId: account.id,
|
||||
success: true,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error creating connected account:", error);
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Stripe connected account creation failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
userId: req.user.id,
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -84,12 +109,25 @@ router.post("/account-links", authenticateToken, async (req, res) => {
|
||||
returnUrl
|
||||
);
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Stripe account link created", {
|
||||
userId: req.user.id,
|
||||
stripeConnectedAccountId: user.stripeConnectedAccountId,
|
||||
expiresAt: accountLink.expires_at,
|
||||
});
|
||||
|
||||
res.json({
|
||||
url: accountLink.url,
|
||||
expiresAt: accountLink.expires_at,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error creating account link:", error);
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Stripe account link creation failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
userId: req.user.id,
|
||||
stripeConnectedAccountId: user?.stripeConnectedAccountId,
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
@@ -107,6 +145,14 @@ router.get("/account-status", authenticateToken, async (req, res) => {
|
||||
user.stripeConnectedAccountId
|
||||
);
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Stripe account status retrieved", {
|
||||
userId: req.user.id,
|
||||
stripeConnectedAccountId: user.stripeConnectedAccountId,
|
||||
detailsSubmitted: accountStatus.details_submitted,
|
||||
payoutsEnabled: accountStatus.payouts_enabled,
|
||||
});
|
||||
|
||||
res.json({
|
||||
accountId: accountStatus.id,
|
||||
detailsSubmitted: accountStatus.details_submitted,
|
||||
@@ -115,59 +161,85 @@ router.get("/account-status", authenticateToken, async (req, res) => {
|
||||
requirements: accountStatus.requirements,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error getting account status:", error);
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Stripe account status retrieval failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
userId: req.user.id,
|
||||
stripeConnectedAccountId: user?.stripeConnectedAccountId,
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
|
||||
// Create embedded setup checkout session for collecting payment method
|
||||
router.post("/create-setup-checkout-session", authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const { rentalData } = req.body;
|
||||
router.post(
|
||||
"/create-setup-checkout-session",
|
||||
authenticateToken,
|
||||
async (req, res) => {
|
||||
try {
|
||||
const { rentalData } = req.body;
|
||||
|
||||
const user = await User.findByPk(req.user.id);
|
||||
|
||||
if (!user) {
|
||||
return res.status(404).json({ error: "User not found" });
|
||||
}
|
||||
const user = await User.findByPk(req.user.id);
|
||||
|
||||
// Create or get Stripe customer
|
||||
let stripeCustomerId = user.stripeCustomerId;
|
||||
|
||||
if (!stripeCustomerId) {
|
||||
// Create new Stripe customer
|
||||
const customer = await StripeService.createCustomer({
|
||||
email: user.email,
|
||||
name: `${user.firstName} ${user.lastName}`,
|
||||
metadata: {
|
||||
userId: user.id.toString()
|
||||
}
|
||||
if (!user) {
|
||||
return res.status(404).json({ error: "User not found" });
|
||||
}
|
||||
|
||||
// Create or get Stripe customer
|
||||
let stripeCustomerId = user.stripeCustomerId;
|
||||
|
||||
if (!stripeCustomerId) {
|
||||
// Create new Stripe customer
|
||||
const customer = await StripeService.createCustomer({
|
||||
email: user.email,
|
||||
name: `${user.firstName} ${user.lastName}`,
|
||||
metadata: {
|
||||
userId: user.id.toString(),
|
||||
},
|
||||
});
|
||||
|
||||
stripeCustomerId = customer.id;
|
||||
|
||||
// Save customer ID to user record
|
||||
await user.update({ stripeCustomerId });
|
||||
}
|
||||
|
||||
// Add rental data to metadata if provided
|
||||
const metadata = rentalData
|
||||
? {
|
||||
rentalData: JSON.stringify(rentalData),
|
||||
}
|
||||
: {};
|
||||
|
||||
const session = await StripeService.createSetupCheckoutSession({
|
||||
customerId: stripeCustomerId,
|
||||
metadata,
|
||||
});
|
||||
|
||||
stripeCustomerId = customer.id;
|
||||
|
||||
// Save customer ID to user record
|
||||
await user.update({ stripeCustomerId });
|
||||
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.info("Stripe setup checkout session created", {
|
||||
userId: req.user.id,
|
||||
stripeCustomerId: stripeCustomerId,
|
||||
sessionId: session.id,
|
||||
hasRentalData: !!rentalData,
|
||||
});
|
||||
|
||||
res.json({
|
||||
clientSecret: session.client_secret,
|
||||
sessionId: session.id,
|
||||
});
|
||||
} catch (error) {
|
||||
const reqLogger = logger.withRequestId(req.id);
|
||||
reqLogger.error("Stripe setup checkout session creation failed", {
|
||||
error: error.message,
|
||||
stack: error.stack,
|
||||
userId: req.user.id,
|
||||
stripeCustomerId: user?.stripeCustomerId,
|
||||
});
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
|
||||
// Add rental data to metadata if provided
|
||||
const metadata = rentalData ? {
|
||||
rentalData: JSON.stringify(rentalData)
|
||||
} : {};
|
||||
|
||||
const session = await StripeService.createSetupCheckoutSession({
|
||||
customerId: stripeCustomerId,
|
||||
metadata
|
||||
});
|
||||
|
||||
res.json({
|
||||
clientSecret: session.client_secret,
|
||||
sessionId: session.id
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error creating setup checkout session:", error);
|
||||
res.status(500).json({ error: error.message });
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user