moving conversion.js into service folder

This commit is contained in:
sairajzero 2022-10-09 23:08:48 +05:30
parent 5344b79cdb
commit fef11b4712
3 changed files with 36 additions and 23 deletions

View File

@ -1,6 +1,6 @@
'use strict'; 'use strict';
const blockchain = require('./blockchain'); const blockchain = require('./blockchain');
const conversion = require('./conversion'); const conversion_rates = require('./services/conversion').getRate;
const { const {
LAUNCH_SELLER_TAG, LAUNCH_SELLER_TAG,
@ -219,7 +219,7 @@ function verifyConvert() {
results.forEach(req => { results.forEach(req => {
if (mode == _sql.CONVERT_MODE_GET) { if (mode == _sql.CONVERT_MODE_GET) {
verifyTx.token(req.floID, req.in_txid, true).then(({ amount }) => { verifyTx.token(req.floID, req.in_txid, true).then(({ amount }) => {
conversion.getRate().then(rate => { conversion_rates.BTC_INR().then(rate => {
blockchain.convertToCoin.init(req.floID, "BTC", amount, amount / rate, req.id) blockchain.convertToCoin.init(req.floID, "BTC", amount, amount / rate, req.id)
}).catch(error => console.error(error)) }).catch(error => console.error(error))
}).catch(error => { }).catch(error => {
@ -230,7 +230,7 @@ function verifyConvert() {
}); });
} else if (mode == _sql.CONVERT_MODE_PUT) { } else if (mode == _sql.CONVERT_MODE_PUT) {
verifyTx.BTC(req.floID, req.in_txid).then(quantity => { verifyTx.BTC(req.floID, req.in_txid).then(quantity => {
conversion.getRate().then(rate => { conversion_rates.BTC_INR().then(rate => {
blockchain.convertFromCoin.init(req.floID, quantity * rate, quantity, req.id) blockchain.convertFromCoin.init(req.floID, quantity * rate, quantity, req.id)
}).catch(error => console.error(error)) }).catch(error => console.error(error))
}).catch(error => { }).catch(error => {

View File

@ -1,7 +1,7 @@
'use strict'; 'use strict';
const market = require("./market"); const market = require("./market");
const conversion = require('./conversion'); const conversion = require('./services/conversion');
const { const {
SIGN_EXPIRE_TIME, SIGN_EXPIRE_TIME,

View File

@ -1,17 +1,21 @@
const _sql = require('./_constants').sql; const _sql = require('../_constants').sql;
const eCode = require('../../docs/scripts/floExchangeAPI').errorCode;
const allowedConversion = ["BTC"]; const allowedConversion = ["BTC"];
function getRate() { var DB; //container for database
function BTC_INR() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
getRate.BTC_USD().then(BTC_rate => { BTC_USD().then(btc_usd => {
getRate.USD_INR().then(INR_rate => { USD_INR().then(usd_inr => {
resolve(BTC_rate * INR_rate); resolve(btc_usd * usd_inr);
}).catch(error => reject(error)) }).catch(error => reject(error))
}).catch(error => reject(error)) }).catch(error => reject(error))
}) })
} }
getRate.BTC_USD = function () { function BTC_USD() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
fetch('https://api.coinlore.net/api/ticker/?id=90').then(response => { fetch('https://api.coinlore.net/api/ticker/?id=90').then(response => {
if (response.ok) { if (response.ok) {
@ -24,7 +28,7 @@ getRate.BTC_USD = function () {
}); });
} }
getRate.USD_INR = function () { function USD_INR() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
fetch('https://api.exchangerate-api.com/v4/latest/usd').then(response => { fetch('https://api.exchangerate-api.com/v4/latest/usd').then(response => {
if (response.ok) { if (response.ok) {
@ -53,6 +57,7 @@ function convertToCoin(floID, txid, coin) {
} }
function convertFromCoin(floID, txid, coin) { function convertFromCoin(floID, txid, coin) {
return new Promise((resolve, reject) => {
if (!allowedConversion.includes(coin)) if (!allowedConversion.includes(coin))
return reject(INVALID(eCode.INVALID_TOKEN_NAME, `Invalid coin (${coin})`)); return reject(INVALID(eCode.INVALID_TOKEN_NAME, `Invalid coin (${coin})`));
DB.query("SELECT status FROM DirectConvert WHERE in_txid=? AND floID=? mode=?", [txid, floID, _sql.CONVERT_MODE_PUT]).then(result => { DB.query("SELECT status FROM DirectConvert WHERE in_txid=? AND floID=? mode=?", [txid, floID, _sql.CONVERT_MODE_PUT]).then(result => {
@ -63,10 +68,18 @@ function convertFromCoin(floID, txid, coin) {
.then(result => resolve("Conversion request in process")) .then(result => resolve("Conversion request in process"))
.catch(error => reject(error)); .catch(error => reject(error));
}).catch(error => reject(error)) }).catch(error => reject(error))
})
} }
module.exports = { module.exports = {
getRate, getRate: {
BTC_USD,
USD_INR,
BTC_INR
},
convertToCoin, convertToCoin,
convertFromCoin convertFromCoin,
set DB(db) {
DB = db;
}
} }