From 55aca58c1b3bddfbffef04b1d4a2d47f91a69547 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Fri, 16 Mar 2018 12:13:22 +0100 Subject: [PATCH] analizeResponse moved to Poloniex API Client --- .vs/AACloud/v15/.suo | Bin 81408 -> 82944 bytes Context.js | 2 +- ExchangeAPI.js | 48 ++++------------------------------------- Poloniex API Client.js | 48 +++++++++++++++++++++++++++++++++++++++-- Project.njsproj | 2 +- Run.js | 2 +- this.config.json | 2 +- 7 files changed, 54 insertions(+), 50 deletions(-) diff --git a/.vs/AACloud/v15/.suo b/.vs/AACloud/v15/.suo index 453ffb7a7e6a75c6887f499fbf3b4bb9f69b921b..8a24d68e8dc8d937cf3a8165d6d65eff9d2539b9 100644 GIT binary patch delta 2729 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 getStatusReport -> err.message = " + err.message); if (err.message === "Status Report was never created.") { diff --git a/ExchangeAPI.js b/ExchangeAPI.js index 933b36a38..3a6c78ef1 100644 --- a/ExchangeAPI.js +++ b/ExchangeAPI.js @@ -80,7 +80,7 @@ if (FULL_LOG === true) { logger.write("[INFO] getOpenPositions -> onExchangeCallReturned -> err = " + err); } if (FULL_LOG === true) { logger.write("[INFO] getOpenPositions -> onExchangeCallReturned -> exchangeResponse = " + JSON.stringify(exchangeResponse)); } - analizeResponse(err, exchangeResponse, callBackFunction, onResponseOk); + poloniexApiClient.analizeResponse(logger, err, exchangeResponse, callBackFunction, onResponseOk); function onResponseOk() { @@ -146,7 +146,7 @@ if (FULL_LOG === true) { logger.write("[INFO] getExecutedTrades -> onExchangeCallReturned -> err = " + err); } if (FULL_LOG === true) { logger.write("[INFO] getExecutedTrades -> onExchangeCallReturned -> exchangeResponse = " + JSON.stringify(exchangeResponse)); } - analizeResponse(err, exchangeResponse, callBackFunction, onResponseOk); + poloniexApiClient.analizeResponse(logger, err, exchangeResponse, callBackFunction, onResponseOk); function onResponseOk() { @@ -235,7 +235,7 @@ if (FULL_LOG === true) { logger.write("[INFO] putPosition -> onExchangeCallReturned -> err = " + err); } if (FULL_LOG === true) { logger.write("[INFO] putPosition -> onExchangeCallReturned -> exchangeResponse = " + JSON.stringify(exchangeResponse)); } - analizeResponse(err, exchangeResponse, callBackFunction, onResponseOk); + poloniexApiClient.analizeResponse(logger, err, exchangeResponse, callBackFunction, onResponseOk); function onResponseOk() { @@ -291,7 +291,7 @@ try { - analizeResponse(err, exchangeResponse, callBackFunction, onResponseOk); + poloniexApiClient.analizeResponse(logger, err, exchangeResponse, callBackFunction, onResponseOk); function onResponseOk() { @@ -334,44 +334,4 @@ } } - function analizeResponse(err, exchangeResponse, callBackFunction, innerCallBack) { - - try { - - logger.write("[INFO] analizeResponse -> err = " + JSON.stringify(err)); - logger.write("[INFO] analizeResponse -> exchangeResponse = " + JSON.stringify(exchangeResponse)); - - if ( - JSON.stringify(err).indexOf("ETIMEDOUT") > 0 || - JSON.stringify(exchangeResponse).indexOf("Connection timed out") > 0 || - JSON.stringify(exchangeResponse).indexOf("Connection Error") > 0 || - JSON.stringify(err).indexOf("ECONNRESET") > 0) - { - - logger.write("[WARN] analizeResponse -> Timeout reached or connection problem while trying to access the Exchange API. Requesting new execution later."); - callBackFunction(global.DEFAULT_RETRY_RESPONSE); - return; - - } else { - - if (err) { - - logger.write("[ERROR] analizeResponse -> Unexpected error trying to contact the Exchange. This will halt this bot process."); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - - } else { - - logger.write("[INFO] analizeResponse -> No problem found."); - innerCallBack(); - return; - } - } - - } catch (err) { - logger.write("[ERROR] analizeResponse -> err.message = " + err.message); - callBackFunction(global.DEFAULT_FAIL_RESPONSE); - return; - } - } }; \ No newline at end of file diff --git a/Poloniex API Client.js b/Poloniex API Client.js index d7e74a657..9ee3bf2b6 100644 --- a/Poloniex API Client.js +++ b/Poloniex API Client.js @@ -389,8 +389,49 @@ toggleAutoRenew: function (orderNumber, callback) { return this._private('toggleAutoRenew', { orderNumber: orderNumber }, callback); - } + }, + analizeResponse: function (logger, exchangeErr, exchangeResponse, notOkCallBack, okCallBack) { + + /* This function analizes the different situations we might encounter trying to access Poloniex and returns appropiate standard errors. */ + + try { + + logger.write("[INFO] analizeResponse -> exchangeErr = " + JSON.stringify(exchangeErr)); + logger.write("[INFO] analizeResponse -> exchangeResponse = " + JSON.stringify(exchangeResponse)); + + if ( + JSON.stringify(exchangeErr).indexOf("ETIMEDOUT") > 0 || + JSON.stringify(exchangeResponse).indexOf("Connection timed out") > 0 || + JSON.stringify(exchangeResponse).indexOf("Connection Error") > 0 || + JSON.stringify(exchangeErr).indexOf("ECONNRESET") > 0) { + + logger.write("[WARN] analizeResponse -> Timeout reached or connection problem while trying to access the Exchange API. Requesting new execution later."); + notOkCallBack(global.DEFAULT_RETRY_RESPONSE); + return; + + } else { + + if (exchangeErr) { + + logger.write("[ERROR] analizeResponse -> Unexpected error trying to contact the Exchange."); + notOkCallBack(global.DEFAULT_FAIL_RESPONSE); + return; + + } else { + + logger.write("[INFO] analizeResponse -> No problem found."); + okCallBack(); + return; + } + } + + } catch (err) { + logger.write("[ERROR] analizeResponse -> err.message = " + err.message); + notOkCallBack(global.DEFAULT_FAIL_RESPONSE); + return; + } + } }; // Backwards Compatibility @@ -403,4 +444,7 @@ Poloniex.prototype.myTradeHistory = Poloniex.prototype.returnTradeHistory; return Poloniex; -})(); \ No newline at end of file +})(); + + + diff --git a/Project.njsproj b/Project.njsproj index 3bd591ef9..6af1a8042 100644 --- a/Project.njsproj +++ b/Project.njsproj @@ -13,7 +13,7 @@ 14.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) Project - Multi-Period-Daily + Trading-Process C:\Program Files\nodejs\node.exe False diff --git a/Run.js b/Run.js index 07afeb2b7..c5238708c 100644 --- a/Run.js +++ b/Run.js @@ -3,7 +3,7 @@ const FULL_LOG = true; /* The following global variable tells the system if it is running on test mode or production. */ -global.RUNNING_MODE = 'Mixed'; // 'Testnet' or 'Production' +global.RUNNING_MODE = 'Production'; // 'Testnet', 'Mixed' or 'Production' /* You do not have funds at the exchange and still want run your bot? No problem activate the exchange simulation mode: */ diff --git a/this.config.json b/this.config.json index 23049ff1b..53b059787 100644 --- a/this.config.json +++ b/this.config.json @@ -6,7 +6,7 @@ "patch": 0 }, "bot": { - "path": "../Bots/AAMasters/AAOlivia-Indicator-Bot" + "path": "../Bots/AAMasters/AAMariam-Trading-Bot" }, "stopGracefully": "false" } \ No newline at end of file