Files
2023-08-06 12:57:04 +08:00

60 lines
2.0 KiB
JavaScript

'use strict';
const axios = require('axios');
const request = require('request');
const db = require('../app/db')
const logger = require('../app/logger');
const flutterwaveConfigBuffer = new Buffer(process.env.FLUTTERWAVE_API, 'base64');
const flutterwaveConfig = JSON.parse(flutterwaveConfigBuffer.toString('ascii'));
var transaction = {
verify: function(req, res, next) {
// https://developer.flutterwave.com/reference/endpoints/transactions/#verify-a-transaction
var url = flutterwaveConfig.BaseApiUrl + '/v3/transactions/' + req.params.id + '/verify';
var headersOpt = {
"Authorization": "Bearer " + flutterwaveConfig.SecretKey,
};
var options = {
headers: headersOpt
};
logger.info(url);
axios.get(url, options)
.then(response => {
//res.json(response);
logger.info('-------------------------------');
logger.info(response.data);
logger.info('-------------------------------');
var json = {
status: response.status,
statusText: response.statusText,
data: response.data
};
res.json(json);
})
.catch(err => {
logger.error(err.message);
//logger.error(err.stack);
logger.error(err.response.data);
//logger.error(err.response.headers);
res.send({
status: "failure",
message: "Invalid response",
details: err.message,
code: err.response.status,
data: err.response.data
});
});
// TODO: Do we save the response in the DB? I assume: YES
db.query('SELECT NOW()', (err, res) => {
if (err) {
throw err;
}
logger.info('time:', res.rows[0])
});
}
};
module.exports = transaction;