An error occurred while loading the file. Please try again.
-
NetOps authored8f40c7cb
import express from "express";
import { createProxyMiddleware } from "http-proxy-middleware";
import endpoints from "./endpoints/endpoints.js";
import easyPay from "./utils/easypay.js";
import axios from "axios";
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
const port = process.env.PORT || 3000;
const targetURL = process.env.TARGET_URL || "https://hasura.upsmfac.org";
// Loop through the endpoints and create the corresponding proxy middleware
endpoints.forEach((endpoint) => {
app.use(
endpoint.route,
createProxyMiddleware({
target: targetURL,
changeOrigin: true,
onProxyReq: (proxyReq, req, res) => {
proxyReq.setHeader("x-hasura-admin-secret", "myadminsecretkey");
proxyReq.setHeader("Hasura-Client-Name", "hasura-console");
if (endpoint.requestBody) {
const bodyData = JSON.stringify(req.body);
proxyReq.setHeader("Content-Length", Buffer.byteLength(bodyData));
}
// Set request body if provided
if (endpoint.requestBody && req.body) {
proxyReq.write(JSON.stringify(req.body));
}
proxyReq.end();
},
onError: (err, req, res) => {
// Handle errors from the upstream server
console.error("Proxy Error:", err.message);
res.status(500).send("Proxy Error: " + err.message);
},
})
);
});
//payment handlers
app.post("/payment/generatelink", (req, res) => {
const payload = req.body;
try {
const response = easyPay.generatePayload(
payload,
process.env.environment === "prod" ? false : true
);
res.status(200).send(response);
} catch (err) {
console.log(err);
res.status(500).send({ message: "Some Error Occured" });
}
});
//payment handlers
app.post("/payment/v2/generatelink", async (req, res) => {
const payload = req.body;
try {
const response = await easyPay.generatePayload(
payload,
process.env.environment === "prod" ? true : true
);
//make api call to insert data
//create payload
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
const date = new Date();
console.log("date - ", date);
let data = {
object: {
created_by: payload.created_by,
invoice_date: payload.mandatoryFields.invoiceDate,
invoice_id: payload.mandatoryFields.invoiceId,
invoice_time: payload.mandatoryFields.invoiceId,
payer_id: payload.mandatoryFields.payerId,
payer_type: payload.mandatoryFields.payerType,
payment_mode: payload.paymode,
reference_no: response.referenceNo,
transaction_amount: payload.mandatoryFields.transactionAmount,
transaction_date:
date.getDay() + "-" + date.getMonth() + "-" + date.getFullYear(),
transaction_status: "UNPAID",
transaction_time:
date.getHours() + ":" + date.getMinutes(),
},
}
//insert into hasura
console.log("Request payload - ", data);
let config = {
method: "put",
maxBodyLength: Infinity,
url: "https://uphrh.in/api/api/rest/saveTransactionRecord",
headers: {
Authorization: "Bearer " + process.env.Authorization,
},
data: data,
};
await axios.request(config)
res.status(200).send(response);
} catch (err) {
console.log(err);
console.error("Error:", err);
console.error("Error message:", err.message);
res.status(500).send({ message: "Some Error Occured" });
}
});
app.listen(port, () => {
console.log(`Server is listening on port ${port}`);
});