@or-sdk/providers 0.2.5 → 0.2.6-beta.1935.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -53,7 +53,11 @@ var discovery_1 = require("@or-sdk/discovery");
53
53
  var Providers = (function () {
54
54
  function Providers(params) {
55
55
  this._providersAccountId = undefined;
56
+ this._eventManagerUrl = undefined;
56
57
  var token = params.token, discoveryUrl = params.discoveryUrl, eventManagerUrl = params.eventManagerUrl, providersAccountId = params.providersAccountId;
58
+ if (!(eventManagerUrl && providersAccountId) && !discoveryUrl) {
59
+ throw new Error('Providers require Discovery URL or both Event Manager URL and Providers Account ID.');
60
+ }
57
61
  this.eventManager = new event_manager_1.EventManager({
58
62
  token: token,
59
63
  discoveryUrl: discoveryUrl,
@@ -63,6 +67,7 @@ var Providers = (function () {
63
67
  token: token,
64
68
  discoveryUrl: discoveryUrl,
65
69
  });
70
+ this._eventManagerUrl = eventManagerUrl;
66
71
  this._providersAccountId = providersAccountId;
67
72
  }
68
73
  Object.defineProperty(Providers.prototype, "providersAccountId", {
@@ -72,6 +77,13 @@ var Providers = (function () {
72
77
  enumerable: false,
73
78
  configurable: true
74
79
  });
80
+ Object.defineProperty(Providers.prototype, "eventManagerUrl", {
81
+ get: function () {
82
+ return this._eventManagerUrl;
83
+ },
84
+ enumerable: false,
85
+ configurable: true
86
+ });
75
87
  Object.defineProperty(Providers.prototype, "providersUrl", {
76
88
  get: function () {
77
89
  return this.providersAccountId ? "/http/".concat(this.providersAccountId) : '';
@@ -81,20 +93,31 @@ var Providers = (function () {
81
93
  });
82
94
  Providers.prototype.makeRequest = function (params) {
83
95
  return __awaiter(this, void 0, void 0, function () {
96
+ var fullUrl;
84
97
  return __generator(this, function (_a) {
85
98
  switch (_a.label) {
86
- case 0:
87
- if (!!this.providersAccountId) return [3, 2];
88
- return [4, this.getProvidersAccountId()];
99
+ case 0: return [4, this.generatePath(params.route)];
89
100
  case 1:
90
- _a.sent();
91
- _a.label = 2;
92
- case 2: return [2, this.eventManager.makeRequest(__assign(__assign({}, params), { route: "".concat(this.providersUrl, "/").concat(params.route) }))];
101
+ fullUrl = _a.sent();
102
+ return [2, this.eventManager.makeRequest(__assign(__assign({}, params), { route: fullUrl }))];
103
+ }
104
+ });
105
+ });
106
+ };
107
+ Providers.prototype.getGatewayUrl = function (path) {
108
+ return __awaiter(this, void 0, void 0, function () {
109
+ var _a, _b;
110
+ return __generator(this, function (_c) {
111
+ switch (_c.label) {
112
+ case 0:
113
+ _b = (_a = "".concat(this.eventManagerUrl)).concat;
114
+ return [4, this.generatePath(path)];
115
+ case 1: return [2, _b.apply(_a, [_c.sent()])];
93
116
  }
94
117
  });
95
118
  });
96
119
  };
97
- Providers.prototype.getProvidersAccountId = function () {
120
+ Providers.prototype.fetchProvidersAccountId = function () {
98
121
  return __awaiter(this, void 0, void 0, function () {
99
122
  var _a;
100
123
  return __generator(this, function (_b) {
@@ -109,6 +132,21 @@ var Providers = (function () {
109
132
  });
110
133
  });
111
134
  };
135
+ Providers.prototype.generatePath = function (path) {
136
+ return __awaiter(this, void 0, void 0, function () {
137
+ return __generator(this, function (_a) {
138
+ switch (_a.label) {
139
+ case 0:
140
+ if (!!this.providersAccountId) return [3, 2];
141
+ return [4, this.fetchProvidersAccountId()];
142
+ case 1:
143
+ _a.sent();
144
+ _a.label = 2;
145
+ case 2: return [2, "".concat(this.providersUrl, "/").concat(path)];
146
+ }
147
+ });
148
+ });
149
+ };
112
150
  return Providers;
113
151
  }());
114
152
  exports.Providers = Providers;
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Providers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAqD;AACrD,+CAA8C;AAW9C;IAWE,mBAAY,MAAuB;QAF3B,wBAAmB,GAAuB,SAAS,CAAC;QAGlD,IAAA,KAAK,GAAwD,MAAM,MAA9D,EAAE,YAAY,GAA0C,MAAM,aAAhD,EAAE,eAAe,GAAyB,MAAM,gBAA/B,EAAE,kBAAkB,GAAK,MAAM,mBAAX,CAAY;QAE5E,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC;YACnC,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,eAAe,iBAAA;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC;YAC7B,KAAK,OAAA;YACL,YAAY,cAAA;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,CAAC;IAED,sBAAI,yCAAkB;aAAtB;YACE,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;;;OAAA;IAED,sBAAI,mCAAY;aAAhB;YACE,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAS,IAAI,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,CAAC;;;OAAA;IAEY,+BAAW,GAAxB,UAA4B,MAAoB;;;;;6BAC1C,CAAC,IAAI,CAAC,kBAAkB,EAAxB,cAAwB;wBAC1B,WAAM,IAAI,CAAC,qBAAqB,EAAE,EAAA;;wBAAlC,SAAkC,CAAC;;4BAGrC,WAAO,IAAI,CAAC,YAAY,CAAC,WAAW,uBAC/B,MAAM,KACT,KAAK,EAAE,UAAG,IAAI,CAAC,YAAY,cAAI,MAAM,CAAC,KAAK,CAAE,IAC7C,EAAC;;;;KACJ;IAEa,yCAAqB,GAAnC;;;;;;wBACE,KAAA,IAAI,CAAA;wBAAuB,WAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAA;;wBAAvE,GAAK,mBAAmB,GAAG,SAA4C,CAAC;;;;;KACzE;IACH,gBAAC;AAAD,CAAC,AAjDD,IAiDC;AAjDY,8BAAS"}
1
+ {"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Providers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uDAAqD;AACrD,+CAA8C;AAW9C;IAYE,mBAAY,MAAuB;QAH3B,wBAAmB,GAAuB,SAAS,CAAC;QACpD,qBAAgB,GAAuB,SAAS,CAAC;QAG/C,IAAA,KAAK,GAAwD,MAAM,MAA9D,EAAE,YAAY,GAA0C,MAAM,aAAhD,EAAE,eAAe,GAAyB,MAAM,gBAA/B,EAAE,kBAAkB,GAAK,MAAM,mBAAX,CAAY;QAE5E,IAAI,CAAC,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;SACxG;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC;YACnC,KAAK,OAAA;YACL,YAAY,cAAA;YACZ,eAAe,iBAAA;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC;YAC7B,KAAK,OAAA;YACL,YAAY,cAAA;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,CAAC;IAED,sBAAI,yCAAkB;aAAtB;YACE,OAAO,IAAI,CAAC,mBAAmB,CAAC;QAClC,CAAC;;;OAAA;IAED,sBAAI,sCAAe;aAAnB;YACE,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;;;OAAA;IAED,sBAAI,mCAAY;aAAhB;YACE,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAS,IAAI,CAAC,kBAAkB,CAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,CAAC;;;OAAA;IAEY,+BAAW,GAAxB,UAA4B,MAAoB;;;;;4BAC9B,WAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;wBAA/C,OAAO,GAAG,SAAqC;wBACrD,WAAO,IAAI,CAAC,YAAY,CAAC,WAAW,uBAC/B,MAAM,KACT,KAAK,EAAE,OAAO,IACd,EAAC;;;;KACJ;IAEY,iCAAa,GAA1B,UAA2B,IAAY;;;;;;6CAC3B,IAAI,CAAC,eAAe;wBAAG,WAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAA;4BAA9D,WAAO,cAA0B,SAA6B,EAAE,EAAC;;;;KAClE;IAEa,2CAAuB,GAArC;;;;;;wBACE,KAAA,IAAI,CAAA;wBAAuB,WAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,EAAA;;wBAAvE,GAAK,mBAAmB,GAAG,SAA4C,CAAC;;;;;KACzE;IAEa,gCAAY,GAA1B,UAA2B,IAAY;;;;;6BACjC,CAAC,IAAI,CAAC,kBAAkB,EAAxB,cAAwB;wBAC1B,WAAM,IAAI,CAAC,uBAAuB,EAAE,EAAA;;wBAApC,SAAoC,CAAC;;4BAEvC,WAAO,UAAG,IAAI,CAAC,YAAY,cAAI,IAAI,CAAE,EAAC;;;;KACvC;IACH,gBAAC;AAAD,CAAC,AApED,IAoEC;AApEY,8BAAS"}
@@ -12,7 +12,11 @@ import { Discovery } from '@or-sdk/discovery';
12
12
  export class Providers {
13
13
  constructor(params) {
14
14
  this._providersAccountId = undefined;
15
+ this._eventManagerUrl = undefined;
15
16
  const { token, discoveryUrl, eventManagerUrl, providersAccountId } = params;
17
+ if (!(eventManagerUrl && providersAccountId) && !discoveryUrl) {
18
+ throw new Error('Providers require Discovery URL or both Event Manager URL and Providers Account ID.');
19
+ }
16
20
  this.eventManager = new EventManager({
17
21
  token,
18
22
  discoveryUrl,
@@ -22,26 +26,41 @@ export class Providers {
22
26
  token,
23
27
  discoveryUrl,
24
28
  });
29
+ this._eventManagerUrl = eventManagerUrl;
25
30
  this._providersAccountId = providersAccountId;
26
31
  }
27
32
  get providersAccountId() {
28
33
  return this._providersAccountId;
29
34
  }
35
+ get eventManagerUrl() {
36
+ return this._eventManagerUrl;
37
+ }
30
38
  get providersUrl() {
31
39
  return this.providersAccountId ? `/http/${this.providersAccountId}` : '';
32
40
  }
33
41
  makeRequest(params) {
34
42
  return __awaiter(this, void 0, void 0, function* () {
35
- if (!this.providersAccountId) {
36
- yield this.getProvidersAccountId();
37
- }
38
- return this.eventManager.makeRequest(Object.assign(Object.assign({}, params), { route: `${this.providersUrl}/${params.route}` }));
43
+ const fullUrl = yield this.generatePath(params.route);
44
+ return this.eventManager.makeRequest(Object.assign(Object.assign({}, params), { route: fullUrl }));
45
+ });
46
+ }
47
+ getGatewayUrl(path) {
48
+ return __awaiter(this, void 0, void 0, function* () {
49
+ return `${this.eventManagerUrl}${yield this.generatePath(path)}`;
39
50
  });
40
51
  }
41
- getProvidersAccountId() {
52
+ fetchProvidersAccountId() {
42
53
  return __awaiter(this, void 0, void 0, function* () {
43
54
  this._providersAccountId = yield this.discovery.getProvidersAccountId();
44
55
  });
45
56
  }
57
+ generatePath(path) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ if (!this.providersAccountId) {
60
+ yield this.fetchProvidersAccountId();
61
+ }
62
+ return `${this.providersUrl}/${path}`;
63
+ });
64
+ }
46
65
  }
47
66
  //# sourceMappingURL=Providers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Providers.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAW9C,MAAM,OAAO,SAAS;IAWpB,YAAY,MAAuB;QAF3B,wBAAmB,GAAuB,SAAS,CAAC;QAG1D,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;QAE5E,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;YACnC,KAAK;YACL,YAAY;YACZ,eAAe;SAChB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;YAC7B,KAAK;YACL,YAAY;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;IAEY,WAAW,CAAI,MAAoB;;YAC9C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;aACpC;YAED,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,iCAC/B,MAAM,KACT,KAAK,EAAE,GAAG,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE,IAC7C,CAAC;QACL,CAAC;KAAA;IAEa,qBAAqB;;YACjC,IAAI,CAAC,mBAAmB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAC1E,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Providers.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAW9C,MAAM,OAAO,SAAS;IAYpB,YAAY,MAAuB;QAH3B,wBAAmB,GAAuB,SAAS,CAAC;QACpD,qBAAgB,GAAuB,SAAS,CAAC;QAGvD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC;QAE5E,IAAI,CAAC,CAAC,eAAe,IAAI,kBAAkB,CAAC,IAAI,CAAC,YAAY,EAAE;YAC7D,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;SACxG;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;YACnC,KAAK;YACL,YAAY;YACZ,eAAe;SAChB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;YAC7B,KAAK;YACL,YAAY;SACb,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,mBAAmB,GAAG,kBAAkB,CAAC;IAChD,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;IAEY,WAAW,CAAI,MAAoB;;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,iCAC/B,MAAM,KACT,KAAK,EAAE,OAAO,IACd,CAAC;QACL,CAAC;KAAA;IAEY,aAAa,CAAC,IAAY;;YACrC,OAAO,GAAG,IAAI,CAAC,eAAe,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,CAAC;KAAA;IAEa,uBAAuB;;YACnC,IAAI,CAAC,mBAAmB,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QAC1E,CAAC;KAAA;IAEa,YAAY,CAAC,IAAY;;YACrC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;aACtC;YACD,OAAO,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;QACxC,CAAC;KAAA;CACF"}
@@ -4,10 +4,14 @@ export declare class Providers {
4
4
  private readonly eventManager;
5
5
  private readonly discovery;
6
6
  private _providersAccountId;
7
+ private _eventManagerUrl;
7
8
  constructor(params: ProvidersConfig);
8
9
  get providersAccountId(): string | undefined;
10
+ get eventManagerUrl(): string | undefined;
9
11
  get providersUrl(): string;
10
12
  makeRequest<T>(params: CalApiParams): Promise<T>;
11
- private getProvidersAccountId;
13
+ getGatewayUrl(path: string): Promise<string>;
14
+ private fetchProvidersAccountId;
15
+ private generatePath;
12
16
  }
13
17
  //# sourceMappingURL=Providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS1C,qBAAa,SAAS;IAOpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,mBAAmB,CAAiC;gBAEhD,MAAM,EAAE,eAAe;IAgBnC,IAAI,kBAAkB,uBAErB;IAED,IAAI,YAAY,WAEf;IAEY,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;YAW/C,qBAAqB;CAGpC"}
1
+ {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAI5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS1C,qBAAa,SAAS;IAOpB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,mBAAmB,CAAiC;IAC5D,OAAO,CAAC,gBAAgB,CAAiC;gBAE7C,MAAM,EAAE,eAAe;IAsBnC,IAAI,kBAAkB,uBAErB;IAED,IAAI,eAAe,uBAElB;IAED,IAAI,YAAY,WAEf;IAEY,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC;IAQhD,aAAa,CAAC,IAAI,EAAE,MAAM;YAIzB,uBAAuB;YAIvB,YAAY;CAM3B"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.5",
2
+ "version": "0.2.6-beta.1935.0",
3
3
  "name": "@or-sdk/providers",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
@@ -24,9 +24,8 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@or-sdk/base": "^0.29.0",
28
- "@or-sdk/discovery": "^1.6.5",
29
- "@or-sdk/event-manager": "^0.24.12"
30
- },
31
- "gitHead": "ed57ac4477e3585618f9abb6341e2708b1e10a5f"
27
+ "@or-sdk/base": "^0.29.1-beta.1935.0",
28
+ "@or-sdk/discovery": "^1.6.6-beta.1935.0",
29
+ "@or-sdk/event-manager": "^0.24.13-beta.1935.0"
30
+ }
32
31
  }
package/src/Providers.ts CHANGED
@@ -21,20 +21,27 @@ export class Providers {
21
21
  private readonly eventManager: EventManager;
22
22
  private readonly discovery: Discovery;
23
23
  private _providersAccountId: string | undefined = undefined;
24
+ private _eventManagerUrl: string | undefined = undefined;
24
25
 
25
26
  constructor(params: ProvidersConfig) {
26
27
  const { token, discoveryUrl, eventManagerUrl, providersAccountId } = params;
27
28
 
29
+ if (!(eventManagerUrl && providersAccountId) && !discoveryUrl) {
30
+ throw new Error('Providers require Discovery URL or both Event Manager URL and Providers Account ID.');
31
+ }
32
+
28
33
  this.eventManager = new EventManager({
29
34
  token,
30
35
  discoveryUrl,
31
36
  eventManagerUrl,
32
37
  });
38
+
33
39
  this.discovery = new Discovery({
34
40
  token,
35
41
  discoveryUrl,
36
42
  });
37
43
 
44
+ this._eventManagerUrl = eventManagerUrl;
38
45
  this._providersAccountId = providersAccountId;
39
46
  }
40
47
 
@@ -42,22 +49,34 @@ export class Providers {
42
49
  return this._providersAccountId;
43
50
  }
44
51
 
52
+ get eventManagerUrl() {
53
+ return this._eventManagerUrl;
54
+ }
55
+
45
56
  get providersUrl() {
46
57
  return this.providersAccountId ? `/http/${this.providersAccountId}` : '';
47
58
  }
48
59
 
49
60
  public async makeRequest<T>(params: CalApiParams): Promise<T> {
50
- if (!this.providersAccountId) {
51
- await this.getProvidersAccountId();
52
- }
53
-
61
+ const fullUrl = await this.generatePath(params.route);
54
62
  return this.eventManager.makeRequest({
55
63
  ...params,
56
- route: `${this.providersUrl}/${params.route}`,
64
+ route: fullUrl,
57
65
  });
58
66
  }
59
67
 
60
- private async getProvidersAccountId(): Promise<void> {
68
+ public async getGatewayUrl(path: string) {
69
+ return `${this.eventManagerUrl}${await this.generatePath(path)}`;
70
+ }
71
+
72
+ private async fetchProvidersAccountId(): Promise<void> {
61
73
  this._providersAccountId = await this.discovery.getProvidersAccountId();
62
74
  }
75
+
76
+ private async generatePath(path: string) {
77
+ if (!this.providersAccountId) {
78
+ await this.fetchProvidersAccountId();
79
+ }
80
+ return `${this.providersUrl}/${path}`;
81
+ }
63
82
  }