1
- const { version, appVersion, baseUrl, baseUrlApp } = require ( "./config" ) ;
2
-
3
1
var request = require ( "request" ) ,
4
2
logger ,
5
3
packageVersion = require ( "../package.json" ) . version ;
@@ -10,30 +8,47 @@ var request = require("request"),
10
8
*/
11
9
var ApiClient = function ( settings ) {
12
10
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
+
13
24
/**
14
25
* Required check for username.
15
26
* @return {Error|null }
16
27
*/
17
28
if ( ! settings . username ) {
18
29
throw new Error ( "Username is required." ) ;
19
30
}
31
+
20
32
/**
21
33
* Required check for accessKey.
22
34
* @return {Error|null }
23
35
*/
24
36
if ( ! settings . accessKey ) {
25
37
throw new Error ( "Access Key is required." ) ;
26
38
}
39
+
27
40
if ( ! logger ) {
28
41
logger = require ( "./logger" ) ( settings . logFile ) ;
29
42
}
30
- logger . info ( "Imported ApiClient and User Credenetials" , settings ) ;
43
+
44
+ logger . info ( "Imported ApiClient and User Credentials" , settings ) ;
31
45
ApiClient . authHeader =
32
46
"Basic " + Buffer . from ( settings . username + ":" + settings . accessKey ) . toString ( "base64" ) ;
33
47
ApiClient . settings = settings ;
34
48
49
+ // Set base URL depending on the app flag
35
50
if ( settings . isApp ) {
36
- ApiClient . baseUrl = baseUrlApp + appVersion . latestVersion ;
51
+ ApiClient . baseUrl = ApiClient . config . baseUrlApp + ApiClient . config . appVersion . latestVersion ;
37
52
}
38
53
} ;
39
54
@@ -44,9 +59,13 @@ var ApiClient = function (settings) {
44
59
* @return {Function|Error } return response to Callable method or throw Error.
45
60
*/
46
61
ApiClient . request = function ( options , fnCallback ) {
47
- /** Initialize Callback function is not there */
62
+ /** Initialize Callback function is not there */
48
63
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
50
69
if ( ApiClient . baseUrl === undefined ) {
51
70
ApiClient . baseUrl = baseUrl + version . latestVersion ;
52
71
ApiClient . request ( options , fnCallback ) ;
@@ -62,19 +81,20 @@ ApiClient.request = function (options, fnCallback) {
62
81
} ;
63
82
options . url = ApiClient . baseUrl + options . url ;
64
83
}
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 ) ;
67
87
request ( options , function ( e , response , body ) {
68
88
if ( e ) {
69
- logger . error ( "Error while Api call of " , e ) ;
89
+ logger . error ( "Error while Api call" , e ) ;
70
90
} else if ( response . statusCode === 200 ) {
71
91
// use try-catch Error possible due to json parse of non-parseable
72
92
try {
73
93
body = JSON . parse ( body ) ;
74
- logger . info ( "Api response json : " , body ) ;
94
+ logger . info ( "Api response json :" , body ) ;
75
95
return fnCallback ( e , body ) ;
76
96
} 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 ) ;
78
98
}
79
99
}
80
100
return fnCallback ( new Error ( e || body ) , null ) ;
0 commit comments