60 lines
2.0 KiB
JavaScript
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;
|
|
|