Added stripe refund on user and trainer cancel
continuous-integration/drone/push Build is failing Details
continuous-integration/drone Build is passing Details

main
Filip Borum Poulsen 3 years ago
parent 4814b9a7cf
commit 25c26b8cfb

@ -10,6 +10,7 @@ import Trainer from "../interfaces/trainer";
import { Order, OrderObject, OrderObjectStatus, OrderStatus, PaymentIntentStatus } from "../interfaces/order";
import { sendUserCancelledOrderEmail } from "../mail/userCancelledOrder";
import User from "../interfaces/user";
import { stripe } from "../stripe";
const router: Router = express.Router();
@ -28,6 +29,7 @@ router.post("/order/:id/cancel", UserAuth, async (req: AuthedRequest, res: Respo
price,
created_at,
payment_intents.status as payment_intent_status,
payment_intents.external_id as payment_intent_id,
start_time as "startDate",
end_time as "endDate",
json_build_object(
@ -65,6 +67,8 @@ router.post("/order/:id/cancel", UserAuth, async (req: AuthedRequest, res: Respo
const user: User = lookupResult.rows[0].user;
lookupResult.rows[0].user = undefined;
const paymentIntentId = lookupResult.rows[0].payment_intent_id;
lookupResult.rows[0].payment_intent_id = undefined;
const order: Order = lookupResult.rows[0];
const dateValidation = Joi.date().min(Date.now()).validate(order.startDate)
@ -81,6 +85,11 @@ router.post("/order/:id/cancel", UserAuth, async (req: AuthedRequest, res: Respo
req.params.id
]);
await stripe.refunds.create({
payment_intent: paymentIntentId,
reason: "requested_by_customer"
});
sendUserCancelledOrderEmail(user, order);
return res.sendStatus(204);

@ -11,6 +11,7 @@ import { TrainerAuth } from "../../middlewares/auth";
import User from "../../interfaces/user";
import { sendTrainerMovedOrderEmail } from "../../mail/trainerMovedOrder";
import { sendTrainerCancelledOrderEmail } from "../../mail/trainerCancelledOrder";
import { stripe } from "../../stripe";
const router: Router = express.Router();
@ -272,6 +273,7 @@ router.post("/trainer/order/:id/cancel", TrainerAuth, async (req: AuthedRequest,
price,
created_at,
payment_intents.status as payment_intent_status,
payment_intents.external_id as payment_intent_id,
start_time as "startDate",
end_time as "endDate",
json_build_object(
@ -309,6 +311,8 @@ router.post("/trainer/order/:id/cancel", TrainerAuth, async (req: AuthedRequest,
const user: User = lookupResult.rows[0].user;
lookupResult.rows[0].user = undefined;
const paymentIntentId = lookupResult.rows[0].payment_intent_id;
lookupResult.rows[0].payment_intent_id = undefined;
const order: Order = lookupResult.rows[0];
const dateValidation = Joi.date().min(Date.now()).validate(order.startDate)
@ -325,6 +329,11 @@ router.post("/trainer/order/:id/cancel", TrainerAuth, async (req: AuthedRequest,
req.params.id
]);
await stripe.refunds.create({
payment_intent: paymentIntentId,
reason: "requested_by_customer"
});
sendTrainerCancelledOrderEmail(user, order);
return res.sendStatus(204);

Loading…
Cancel
Save