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(`
Redirecting...
`); } }