Skip to content

Commit 10a7db7

Browse files
Merge pull request #18 from Shahnawaz-Sk/master
changes for eu/us config
2 parents 393716c + 0dd48b4 commit 10a7db7

File tree

6 files changed

+60
-22
lines changed

6 files changed

+60
-22
lines changed

lib/api_client.js

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
const { version, appVersion, baseUrl, baseUrlApp } = require("./config");
2-
31
var request = require("request"),
42
logger,
53
packageVersion = require("../package.json").version;
@@ -10,30 +8,47 @@ var request = require("request"),
108
*/
119
var 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
*/
4661
ApiClient.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);

lib/api_client_v2.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const axios = require('axios');
2-
const { version, appVersion, baseUrl, baseUrlApp } = require("./config");
32
const packageVersion = require("../package.json").version;
43
let logger;
54

@@ -22,6 +21,19 @@ var ApiClient = function (settings) {
2221
if (!logger) {
2322
logger = require("./logger")(settings.logFile);
2423
}
24+
25+
const region = (settings.region || "us").toLowerCase();
26+
27+
/**
28+
* Region validation
29+
* @return {Error|null}
30+
*/
31+
if (!["us", "eu"].includes(region)) {
32+
throw new Error("Region is invalid.");
33+
}
34+
35+
const { version, appVersion, baseUrl, baseUrlApp } = require(`./config.${region}`);
36+
2537
logger.info("Imported ApiClient and User Credenetials", settings);
2638
ApiClient.basicAuth = "Basic " + Buffer.from(settings.username + ":" + settings.accessKey).toString("base64");
2739

lib/config.eu.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = {
2+
version: { latestVersion: "v1", supportedVersions: ["v1"] },
3+
appVersion: { latestVersion: "v1", supportedVersions: ["v1"] },
4+
baseUrl: "https://eu-api.lambdatest.com/automation/api/",
5+
baseUrlApp: "https://eu-mobile-api.lambdatest.com/mobile-automation/api/",
6+
};
File renamed without changes.

package-lock.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lambdatest/node-rest-client",
3-
"version": "2.0.0",
3+
"version": "2.0.1",
44
"description": "LambdaTest Rest Client for Node.js",
55
"main": "index.js",
66
"repository": {

0 commit comments

Comments
 (0)