From 9fa5428cb182b0a6475144e3a60d63124cccfdc1 Mon Sep 17 00:00:00 2001
From: Renzo <rontivero@ultimamillasa.com.ar>
Date: Tue, 12 May 2020 17:38:06 -0300
Subject: [PATCH] Optimizando los procesos

---
 api/controllers/AccountController.js    |  2 +-
 api/controllers/BlockchainController.js |  8 ++++++--
 api/controllers/CeloController.js       |  3 ++-
 api/controllers/RinkebyController.js    | 18 ++++++++++--------
 api/helpers/ars-to-usd.js               | 13 ++++++++-----
 api/helpers/eth-to-usd.js               | 18 ++++++++++++++----
 api/helpers/rbtc-to-usd.js              | 13 +++++++++----
 api/helpers/usd-to-ars.js               | 13 ++++++++-----
 api/helpers/usd-to-eth.js               | 12 +++++++++---
 api/helpers/usd-to-rbtc.js              | 15 ++++++++++-----
 10 files changed, 77 insertions(+), 38 deletions(-)

diff --git a/api/controllers/AccountController.js b/api/controllers/AccountController.js
index 2ae1adf..6e5efa3 100755
--- a/api/controllers/AccountController.js
+++ b/api/controllers/AccountController.js
@@ -45,7 +45,7 @@ module.exports = {
     payments.push({name: 'rinkeby', enabled: true});
     payments.push({name: 'rsk', enabled: true});
     payments.push({name: 'bfa', enabled: false});
-    payments.push({name: 'celo', enabled: false});
+    payments.push({name: 'celo', enabled: true});
 
     return res.json(payments);
   }
diff --git a/api/controllers/BlockchainController.js b/api/controllers/BlockchainController.js
index b9a22af..b81fc4d 100755
--- a/api/controllers/BlockchainController.js
+++ b/api/controllers/BlockchainController.js
@@ -235,10 +235,14 @@ module.exports = {
 		web3.eth.sendSignedTransaction(raw, (err, tx_hash) => {
 			
 			if(err){					
-				return res.json(err.toString());
+				return res.json({
+					status: 'error',
+					error: err.toString()
+				});
 			}
 
-			return res.json({			
+			return res.json({
+				status: 'ok',
 				tx_hash : tx_hash
 			});
 		});
diff --git a/api/controllers/CeloController.js b/api/controllers/CeloController.js
index 696b22a..94a245c 100755
--- a/api/controllers/CeloController.js
+++ b/api/controllers/CeloController.js
@@ -24,7 +24,8 @@ module.exports = {
 
 		let balance = await goldtoken.balanceOf(account)
 		
-		return res.json(balance.toString());
+		sails.log("-------------------------------------------------------");
+		return res.json(balance);
 	},
 
 };
diff --git a/api/controllers/RinkebyController.js b/api/controllers/RinkebyController.js
index cbccd6f..787a9cc 100755
--- a/api/controllers/RinkebyController.js
+++ b/api/controllers/RinkebyController.js
@@ -184,8 +184,8 @@ module.exports = {
 			throw 'No se pudo obtener la cotización del USD';
 		}
 
-	  		sails.log("-------------------------------------------------------");
-	  		return res.json(usdToArs);
+  		sails.log("-------------------------------------------------------");
+  		return res.json(usdToArs);
 	  		
 	  	});
   },
@@ -197,8 +197,7 @@ module.exports = {
   	var private_key = Buffer.from(
 	  req.body.private_key.substr(2),
 	  'hex',
-	);
-  	
+	);  	
   	
   	// Tengo que convertir el dinero que viene en ARS a USD
   	try{
@@ -214,8 +213,7 @@ module.exports = {
   		sails.log("USDToEth:", usdToEth);	
   	} catch (e){
   		throw 'No se pudo obtener la cotización ETH';
-  	}
-  	
+  	}  	
 
 
   	web3.eth.getTransactionCount(_from, (err, txCount) => {
@@ -240,10 +238,14 @@ module.exports = {
 		web3.eth.sendSignedTransaction(raw, (err, tx_hash) => {
 			
 			if(err){					
-				return res.json(err.toString());
+				return res.json({
+					status: 'error',
+					error: err.toString()
+				});
 			}
 
-			return res.json({			
+			return res.json({
+				status: 'ok',
 				tx_hash : tx_hash
 			});
 		});
diff --git a/api/helpers/ars-to-usd.js b/api/helpers/ars-to-usd.js
index b91f23c..d14ccb7 100755
--- a/api/helpers/ars-to-usd.js
+++ b/api/helpers/ars-to-usd.js
@@ -38,11 +38,14 @@ module.exports = {
       console.log(err);
     });
 
-    sails.log("Tasa de conversión USD/ARS:", openexchange);
-
-    // TODO: guardar el último valor en la BD y en caso de fallar el exchange, tomar la cotización de la BD
-
-    var arsToUsd = inputs.ars / openexchange;
+    if(openexchange){
+      sails.log("Tasa de conversión USD/ARS:", openexchange);
+      var arsToUsd = inputs.ars / openexchange;
+    } else {
+      openexchange = 67.4556; // Camperiño
+      sails.log("********Tasa  de conversión USD/ARS:", openexchange);
+      var arsToUsd = inputs.ars / openexchange;
+    }
 
     return arsToUsd;
   }
diff --git a/api/helpers/eth-to-usd.js b/api/helpers/eth-to-usd.js
index 120e81c..a97fcc3 100755
--- a/api/helpers/eth-to-usd.js
+++ b/api/helpers/eth-to-usd.js
@@ -27,6 +27,11 @@ module.exports = {
 
 
   fn: async function (inputs) {
+    // TODO: 
+    //- Almacenar el valor obtenido en la BD
+    //- Calcular el tiempo de la última actualización
+    //- Si es más de una hs, actualizar, si no leer y devolver el valor de la BD
+
     var exchangerate = await axios({        
       method : 'GET',
       url : 'https://rest.coinapi.io/v1/exchangerate/ETH/USD',
@@ -40,11 +45,16 @@ module.exports = {
     .catch(err => {
        console.log(err.response.data);
     });
-        
-    sails.log("Tasa de conversion ETH/USD:", exchangerate);
-    
-    var etherToUsd = exchangerate * inputs.eth;
 
+    if(exchangerate){
+      sails.log("Tasa de conversion ETH/USD:", exchangerate);    
+      var etherToUsd = inputs.eth * exchangerate;
+    } else {
+      exchangerate = 190.8182377954368; // Camperiño
+      sails.log("***** Tasa de conversion ETH/USD:", exchangerate);    
+      var etherToUsd = inputs.eth * exchangerate;
+    }
+        
     return etherToUsd;
   }
 
diff --git a/api/helpers/rbtc-to-usd.js b/api/helpers/rbtc-to-usd.js
index ad5341a..89724cb 100755
--- a/api/helpers/rbtc-to-usd.js
+++ b/api/helpers/rbtc-to-usd.js
@@ -40,11 +40,16 @@ module.exports = {
     .catch(err => {
       console.log(err.response.data);
     });
-        
-    sails.log("Tasa de conversion RBTC/USD:", exchangerate);
-    
-    var rbtcToUsd = exchangerate * inputs.rbtc;
 
+    if(exchangerate){
+      sails.log("Tasa de conversion RBTC/USD:", exchangerate);    
+      var rbtcToUsd = inputs.rbtc * exchangerate;
+    } else {
+      exchangerate = 8869.059502279988; // Camperiño
+      sails.log("***** Tasa de conversion RBTC/USD:", exchangerate);    
+      var rbtcToUsd = inputs.rbtc * exchangerate;
+    }
+    
     return rbtcToUsd;
   }
 
diff --git a/api/helpers/usd-to-ars.js b/api/helpers/usd-to-ars.js
index e63f77a..a056e98 100755
--- a/api/helpers/usd-to-ars.js
+++ b/api/helpers/usd-to-ars.js
@@ -38,11 +38,14 @@ module.exports = {
       console.log(err);
     });
 
-    sails.log("Tasa de conversión USD/ARS:", openexchange);
-
-    // TODO: guardar el último valor en la BD y en caso de fallar el exchange, tomar la cotización de la BD
-
-    var usdToArs = openexchange * inputs.usd;
+    if(openexchange){
+      sails.log("Tasa de conversión USD/ARS:", openexchange);
+      var usdToArs = inputs.usd * openexchange;
+    } else {
+      openexchange = 67.4556; // Camperiño
+      sails.log("******** Tasa de conversión USD/ARS:", openexchange);
+      var usdToArs = inputs.usd * openexchange;
+    }
 
     return usdToArs;
   }
diff --git a/api/helpers/usd-to-eth.js b/api/helpers/usd-to-eth.js
index 6ad1da8..002c891 100755
--- a/api/helpers/usd-to-eth.js
+++ b/api/helpers/usd-to-eth.js
@@ -40,10 +40,16 @@ module.exports = {
     .catch(err => {
        console.log(err.response.data);
     });
+
+    if(exchangerate){
+      sails.log("Tasa de conversion ETH/USD:", exchangerate);    
+      var usdToEth = inputs.usd / exchangerate;
+    } else {
+      exchangerate = 190.8182377954368; // Camperiño
+      sails.log("***** Tasa de conversion ETH/USD:", exchangerate);    
+      var usdToEth = inputs.usd / exchangerate;
+    }
         
-    sails.log("Tasa de conversion ETH/USD:", exchangerate);
-    
-    var usdToEth = inputs.usd / exchangerate;
 
     return usdToEth;
   }
diff --git a/api/helpers/usd-to-rbtc.js b/api/helpers/usd-to-rbtc.js
index 5e96532..4865a88 100755
--- a/api/helpers/usd-to-rbtc.js
+++ b/api/helpers/usd-to-rbtc.js
@@ -40,12 +40,17 @@ module.exports = {
     .catch(err => {
        console.log(err.response.data);
     });
-        
-    sails.log("Tasa de conversion ETH/USD:", exchangerate);
-    
-    var rbtcToUsd = inputs.usd / exchangerate;
 
-    return rbtcToUsd;
+    if(exchangerate){
+      sails.log("Tasa de conversion RBTC/USD:", exchangerate);    
+      var usdToRbtc = inputs.usd / exchangerate;
+    } else {
+      exchangerate = 8869.059502279988; // Camperiño
+      sails.log("***** Tasa de conversion RBTC/USD:", exchangerate);    
+      var usdToRbtc = inputs.usd / exchangerate;
+    }
+    
+    return usdToRbtc;
   }
 
 
-- 
GitLab