1- const { version, appVersion, baseUrl, baseUrlApp } = require ( "./config" ) ;
2-
31var request = require ( "request" ) ,
42 logger ,
53 packageVersion = require ( "../package.json" ) . version ;
@@ -10,30 +8,47 @@ var request = require("request"),
108 */
119var ApiClient = function ( settings ) {
1210 settings = settings || { } ;
11+
12+ /**
13+ * Region validation
14+ * @return {Error|null }
15+ */
16+ const region = ( settings . region || "us" ) . toLowerCase ( ) ;
17+ if ( ! [ "us" , "eu" ] . includes ( region ) ) {
18+ throw new Error ( "Region is invalid." ) ;
19+ }
20+
21+ // Load region-specific config and attach it to ApiClient
22+ ApiClient . config = require ( `./config.${ region } ` ) ;
23+
1324 /**
1425 * Required check for username.
1526 * @return {Error|null }
1627 */
1728 if ( ! settings . username ) {
1829 throw new Error ( "Username is required." ) ;
1930 }
31+
2032 /**
2133 * Required check for accessKey.
2234 * @return {Error|null }
2335 */
2436 if ( ! settings . accessKey ) {
2537 throw new Error ( "Access Key is required." ) ;
2638 }
39+
2740 if ( ! logger ) {
2841 logger = require ( "./logger" ) ( settings . logFile ) ;
2942 }
30- logger . info ( "Imported ApiClient and User Credenetials" , settings ) ;
43+
44+ logger . info ( "Imported ApiClient and User Credentials" , settings ) ;
3145 ApiClient . authHeader =
3246 "Basic " + Buffer . from ( settings . username + ":" + settings . accessKey ) . toString ( "base64" ) ;
3347 ApiClient . settings = settings ;
3448
49+ // Set base URL depending on the app flag
3550 if ( settings . isApp ) {
36- ApiClient . baseUrl = baseUrlApp + appVersion . latestVersion ;
51+ ApiClient . baseUrl = ApiClient . config . baseUrlApp + ApiClient . config . appVersion . latestVersion ;
3752 }
3853} ;
3954
@@ -44,9 +59,13 @@ var ApiClient = function (settings) {
4459 * @return {Function|Error } return response to Callable method or throw Error.
4560 */
4661ApiClient . request = function ( options , fnCallback ) {
47- /** Initialize Callback function is not there */
62+ /** Initialize Callback function is not there */
4863 fnCallback = fnCallback || function ( ) { } ;
49- /** Check baseUrl is on ApiClient */
64+
65+ // Access the configuration from ApiClient
66+ const { baseUrl, version } = ApiClient . config ;
67+
68+ // Check and set the baseUrl if it's undefined
5069 if ( ApiClient . baseUrl === undefined ) {
5170 ApiClient . baseUrl = baseUrl + version . latestVersion ;
5271 ApiClient . request ( options , fnCallback ) ;
@@ -62,19 +81,20 @@ ApiClient.request = function (options, fnCallback) {
6281 } ;
6382 options . url = ApiClient . baseUrl + options . url ;
6483 }
65- /** For Debbuging purpose log Request Payload */
66- logger . info ( "Api request options " , options ) ;
84+
85+ /** For Debbuging purpose log Request Payload */
86+ logger . info ( "Api request options" , options ) ;
6787 request ( options , function ( e , response , body ) {
6888 if ( e ) {
69- logger . error ( "Error while Api call of " , e ) ;
89+ logger . error ( "Error while Api call" , e ) ;
7090 } else if ( response . statusCode === 200 ) {
7191 // use try-catch Error possible due to json parse of non-parseable
7292 try {
7393 body = JSON . parse ( body ) ;
74- logger . info ( "Api response json : " , body ) ;
94+ logger . info ( "Api response json :" , body ) ;
7595 return fnCallback ( e , body ) ;
7696 } catch ( e ) {
77- logger . error ( "Error while parse to json of output response " , e ) ;
97+ logger . error ( "Error while parsing to json of output response" , e ) ;
7898 }
7999 }
80100 return fnCallback ( new Error ( e || body ) , null ) ;
0 commit comments