mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
68 lines
1.9 KiB
TypeScript
68 lines
1.9 KiB
TypeScript
import { Controller, Get, NotFoundException, Param, ParseUUIDPipe, Post, Res } from "@nestjs/common";
|
|
import { PaymentService } from "./payment.service";
|
|
import { Public } from "@edr/api-common";
|
|
// import { randomUUID } from "crypto";
|
|
import { Response } from "express"
|
|
|
|
@Public()
|
|
@Controller("payments")
|
|
export class PaymentController {
|
|
constructor(private readonly paymentService: PaymentService,) { }
|
|
|
|
|
|
// @Get("/receipts/:orderId/html")
|
|
// async genReceipt(@Param("orderId") orderId: string, @Res() res: Response) {
|
|
// const filled = await this.paymentService.genReceiptHtml(orderId);
|
|
// return res.send(filled)
|
|
// }
|
|
|
|
// @Post("/initiate/booking")
|
|
// async initiatePayment() {
|
|
|
|
// //Only for testing..
|
|
// const description = "Booking for contact"
|
|
// const price = 2000
|
|
// const data = await this.paymentService.pay(price, "ETB", "telebirr", description, "booking", (_) => {
|
|
// return new Promise((resp, _) => {
|
|
// resp({
|
|
// id: randomUUID(),
|
|
// type: "booking"
|
|
// })
|
|
// });
|
|
// })
|
|
|
|
// return data
|
|
// }
|
|
|
|
@Post("/bookings/check-payment/:orderId")
|
|
checkPayment(@Param("orderId", ParseUUIDPipe) orderId: string) {
|
|
return this.paymentService.checkStatusAndUpdate(orderId)
|
|
}
|
|
|
|
|
|
@Get("/telebirr/:refId")
|
|
async pay(@Param("refId", ParseUUIDPipe) refId: string, @Res() res: Response) {
|
|
const payment = await this.paymentService.getActivePaymentByRefIdAndMethod(refId, "telebirr")
|
|
if (!payment) {
|
|
throw new NotFoundException('payment not found')
|
|
}
|
|
|
|
return res.send(`
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Redirecting...</title>
|
|
</head>
|
|
<body>
|
|
<p>Redirecting...</p>
|
|
|
|
<script>
|
|
window.location.href = "${payment.clientAction?.url}";
|
|
</script>
|
|
</body>
|
|
</html>
|
|
`);
|
|
}
|
|
|
|
}
|