@futdevpro/nts-dynamo 1.10.6 → 1.10.7
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.
- package/build/_models/control-models/api-call-params.control-model.d.ts +3 -30
- package/build/_models/control-models/api-call-params.control-model.d.ts.map +1 -1
- package/build/_models/control-models/api-call-params.control-model.js +26 -13
- package/build/_models/control-models/api-call-params.control-model.js.map +1 -1
- package/build/_models/control-models/api-call-params.control-model.spec.js +6 -6
- package/build/_services/core/api.service.d.ts +1 -1
- package/build/_services/core/api.service.d.ts.map +1 -1
- package/build/_services/core/api.service.js +16 -6
- package/build/_services/core/api.service.js.map +1 -1
- package/build/_services/core/api.service.spec.js +4 -3
- package/build/_services/core/api.service.spec.js.map +1 -1
- package/package.json +1 -1
- package/src/_models/control-models/api-call-params.control-model.spec.ts +6 -6
- package/src/_models/control-models/api-call-params.control-model.ts +30 -43
- package/src/_services/core/api.service.spec.ts +3 -3
- package/src/_services/core/api.service.ts +21 -7
|
@@ -25,7 +25,7 @@ export declare class DyNTS_ApiCall_Params {
|
|
|
25
25
|
* baseUrl of the API;
|
|
26
26
|
* 'https://futdevpro.hu/api'
|
|
27
27
|
*/
|
|
28
|
-
|
|
28
|
+
endpoint: string;
|
|
29
29
|
/**
|
|
30
30
|
* if this value is true, the call will return the full HTTP call response in raw
|
|
31
31
|
*/
|
|
@@ -34,39 +34,12 @@ export declare class DyNTS_ApiCall_Params {
|
|
|
34
34
|
* this setting will be passed to the axios http call
|
|
35
35
|
*/
|
|
36
36
|
httpOptions: any;
|
|
37
|
+
pathParamKeys: string[];
|
|
37
38
|
constructor(
|
|
38
39
|
/**
|
|
39
40
|
* set of options necessary for setting up an API call
|
|
40
41
|
*/
|
|
41
|
-
set:
|
|
42
|
-
/**
|
|
43
|
-
* name the call to be able to identify it when debugging
|
|
44
|
-
*/
|
|
45
|
-
name: string;
|
|
46
|
-
/**
|
|
47
|
-
* set type as; HttpCallType .get, .post, ...ect
|
|
48
|
-
*/
|
|
49
|
-
type: DyFM_HttpCallType;
|
|
50
|
-
/**
|
|
51
|
-
* the endpoint of the API, without the baseUrl:
|
|
52
|
-
* '/user/get/:userId',
|
|
53
|
-
* where the parts starting with ':', will be used as pathParam
|
|
54
|
-
*/
|
|
55
|
-
endPoint: string;
|
|
56
|
-
/**
|
|
57
|
-
* baseUrl of the API;
|
|
58
|
-
* 'https://futdevpro.hu/api'
|
|
59
|
-
*/
|
|
60
|
-
baseUrl: string;
|
|
61
|
-
/**
|
|
62
|
-
* setting this value to true, will return the full HTTP call response in raw
|
|
63
|
-
*/
|
|
64
|
-
getFullResponse?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* this setting will pass any kind of http setting used by the axios http messaging package
|
|
67
|
-
*/
|
|
68
|
-
httpOptions?: DyNTS_HttpOptions;
|
|
69
|
-
});
|
|
42
|
+
set: Partial<DyNTS_ApiCall_Params>);
|
|
70
43
|
}
|
|
71
44
|
/**
|
|
72
45
|
* basic axios HttpsOptions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-call-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/api-call-params.control-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAa,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-call-params.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/api-call-params.control-model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAa,MAAM,uBAAuB,CAAC;AAG5F;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,iBAAiB,CAAyB;IAChD;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAS;IACjC;;OAEG;IACH,WAAW,EAAE,GAAG,CAAM;IAEtB,aAAa,EAAE,MAAM,EAAE,CAAM;;IAG3B;;OAEG;IACH,GAAG,EAAE,OAAO,CAAC,oBAAoB,CAAC;CA6BrC;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,OAAO,CAAC,EAAE;QACR,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;gBAGxB,GAAG,EAAE;QACH,YAAY,CAAC,EAAE,qBAAqB,CAAC;QACrC,OAAO,CAAC,EAAE;YACR,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;SACrC,CAAC;QACF,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,eAAe,CAAC,EAAE,OAAO,CAAA;KAC1B;CAQJ"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DyNTS_HttpOptions = exports.DyNTS_ApiCall_Params = void 0;
|
|
4
4
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
const global_settings_const_1 = require("../../_collections/global-settings.const");
|
|
5
6
|
/**
|
|
6
7
|
* API call params,
|
|
7
8
|
* such as
|
|
@@ -17,7 +18,7 @@ class DyNTS_ApiCall_Params {
|
|
|
17
18
|
/**
|
|
18
19
|
* type of the call as; HttpCallType .get, .post, ...ect
|
|
19
20
|
*/
|
|
20
|
-
type;
|
|
21
|
+
type = fsm_dynamo_1.DyFM_HttpCallType.get;
|
|
21
22
|
/**
|
|
22
23
|
* the endpoint of the API, without the baseUrl:
|
|
23
24
|
* '/user/get/:userId',
|
|
@@ -28,31 +29,43 @@ class DyNTS_ApiCall_Params {
|
|
|
28
29
|
* baseUrl of the API;
|
|
29
30
|
* 'https://futdevpro.hu/api'
|
|
30
31
|
*/
|
|
31
|
-
|
|
32
|
+
endpoint;
|
|
32
33
|
/**
|
|
33
34
|
* if this value is true, the call will return the full HTTP call response in raw
|
|
34
35
|
*/
|
|
35
|
-
getFullResponse;
|
|
36
|
+
getFullResponse = false;
|
|
36
37
|
/**
|
|
37
38
|
* this setting will be passed to the axios http call
|
|
38
39
|
*/
|
|
39
|
-
httpOptions;
|
|
40
|
+
httpOptions = {};
|
|
41
|
+
pathParamKeys = [];
|
|
40
42
|
constructor(
|
|
41
43
|
/**
|
|
42
44
|
* set of options necessary for setting up an API call
|
|
43
45
|
*/
|
|
44
46
|
set) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
if (!set.name) {
|
|
48
|
+
fsm_dynamo_1.DyFM_Log.warn('you should provide a name for the API call');
|
|
49
|
+
}
|
|
50
|
+
if (!set.baseUrl) {
|
|
51
|
+
fsm_dynamo_1.DyFM_Log.error('baseUrl is not provided, using global baseUrl');
|
|
52
|
+
this.baseUrl = global_settings_const_1.DyNTS_global_settings.baseUrl;
|
|
53
|
+
}
|
|
54
|
+
if (!set.endpoint) {
|
|
55
|
+
fsm_dynamo_1.DyFM_Log.error('endPoint is not provided, using global endPoint');
|
|
56
|
+
this.endpoint = '';
|
|
57
|
+
}
|
|
58
|
+
else if (set.endpoint.includes('{')) {
|
|
59
|
+
fsm_dynamo_1.DyFM_Log.warn(`using {param} bracets in endpoint definitions will be deprecated... (${set.endpoint})` +
|
|
49
60
|
'use :param instead ({pathparam} --> :pathparam)');
|
|
50
|
-
set.
|
|
61
|
+
set.endpoint = set.endpoint.replace(/{/g, ':').replace(/}/g, '');
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.pathParamKeys = set.endpoint.split('/')
|
|
65
|
+
.filter(part => part.startsWith(':'))
|
|
66
|
+
.map(part => part.slice(1));
|
|
51
67
|
}
|
|
52
|
-
this
|
|
53
|
-
this.baseUrl = set.baseUrl;
|
|
54
|
-
this.getFullResponse = !!set.getFullResponse;
|
|
55
|
-
this.httpOptions = set.httpOptions ? set.httpOptions : {};
|
|
68
|
+
Object.assign(this, set);
|
|
56
69
|
}
|
|
57
70
|
}
|
|
58
71
|
exports.DyNTS_ApiCall_Params = DyNTS_ApiCall_Params;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-call-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/api-call-params.control-model.ts"],"names":[],"mappings":";;;AACA,sDAA4F;
|
|
1
|
+
{"version":3,"file":"api-call-params.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/api-call-params.control-model.ts"],"names":[],"mappings":";;;AACA,sDAA4F;AAC5F,oFAAiF;AAEjF;;;;;;GAMG;AACH,MAAa,oBAAoB;IAC/B;;OAEG;IACH,IAAI,CAAS;IACb;;OAEG;IACH,IAAI,GAAsB,8BAAiB,CAAC,GAAG,CAAC;IAChD;;;;OAIG;IACH,OAAO,CAAS;IAChB;;;OAGG;IACH,QAAQ,CAAS;IAEjB;;OAEG;IACH,eAAe,GAAY,KAAK,CAAC;IACjC;;OAEG;IACH,WAAW,GAAQ,EAAE,CAAC;IAEtB,aAAa,GAAa,EAAE,CAAC;IAE7B;IACE;;OAEG;IACH,GAAkC;QAGlC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,qBAAQ,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACjB,qBAAQ,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,GAAG,6CAAqB,CAAC,OAAO,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAClB,qBAAQ,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,qBAAQ,CAAC,IAAI,CACX,wEAAwE,GAAG,CAAC,QAAQ,GAAG;gBACvF,iDAAiD,CAClD,CAAC;YACF,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;iBACzC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC3B,CAAC;CACF;AAjED,oDAiEC;AAED;;;;;GAKG;AACH,MAAa,iBAAiB;IAC5B,YAAY,CAAyB;IACrC,OAAO,CAEL;IACF,OAAO,CAAU;IACjB,cAAc,CAAW;IACzB,eAAe,CAAW;IAE1B,YACE,GAQC;QAED,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,eAAe,CAAC;IAC7C,CAAC;CACF;AA1BD,8CA0BC"}
|
|
@@ -7,12 +7,12 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
7
7
|
const params = new api_call_params_control_model_1.DyNTS_ApiCall_Params({
|
|
8
8
|
name: 'testCall',
|
|
9
9
|
type: fsm_dynamo_1.DyFM_HttpCallType.get,
|
|
10
|
-
|
|
10
|
+
endpoint: '/test/endpoint',
|
|
11
11
|
baseUrl: 'https://example.com/api',
|
|
12
12
|
});
|
|
13
13
|
expect(params.name).toBe('testCall');
|
|
14
14
|
expect(params.type).toBe(fsm_dynamo_1.DyFM_HttpCallType.get);
|
|
15
|
-
expect(params.
|
|
15
|
+
expect(params.endpoint).toBe('/test/endpoint');
|
|
16
16
|
expect(params.baseUrl).toBe('https://example.com/api');
|
|
17
17
|
expect(params.getFullResponse).toBe(false);
|
|
18
18
|
expect(params.httpOptions).toEqual({});
|
|
@@ -28,14 +28,14 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
28
28
|
const params = new api_call_params_control_model_1.DyNTS_ApiCall_Params({
|
|
29
29
|
name: 'testCall',
|
|
30
30
|
type: fsm_dynamo_1.DyFM_HttpCallType.post,
|
|
31
|
-
|
|
31
|
+
endpoint: '/test/endpoint',
|
|
32
32
|
baseUrl: 'https://example.com/api',
|
|
33
33
|
getFullResponse: true,
|
|
34
34
|
httpOptions: httpOptions,
|
|
35
35
|
});
|
|
36
36
|
expect(params.name).toBe('testCall');
|
|
37
37
|
expect(params.type).toBe(fsm_dynamo_1.DyFM_HttpCallType.post);
|
|
38
|
-
expect(params.
|
|
38
|
+
expect(params.endpoint).toBe('/test/endpoint');
|
|
39
39
|
expect(params.baseUrl).toBe('https://example.com/api');
|
|
40
40
|
expect(params.getFullResponse).toBe(true);
|
|
41
41
|
expect(params.httpOptions).toEqual(httpOptions);
|
|
@@ -45,12 +45,12 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
45
45
|
const params = new api_call_params_control_model_1.DyNTS_ApiCall_Params({
|
|
46
46
|
name: 'testCall',
|
|
47
47
|
type: fsm_dynamo_1.DyFM_HttpCallType.get,
|
|
48
|
-
|
|
48
|
+
endpoint: '/test/{param}/endpoint',
|
|
49
49
|
baseUrl: 'https://example.com/api',
|
|
50
50
|
});
|
|
51
51
|
expect(fsm_dynamo_1.DyFM_Log.warn).toHaveBeenCalledWith('using {param} bracets in endpoint definitions will be deprecated... (/test/{param}/endpoint)' +
|
|
52
52
|
'use :param instead ({pathparam} --> :pathparam)');
|
|
53
|
-
expect(params.
|
|
53
|
+
expect(params.endpoint).toBe('/test/:param/endpoint');
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
56
|
describe('DyNTS_HttpOptions', () => {
|
|
@@ -15,7 +15,7 @@ export interface DyNTS_ApiCallInput_Params<T_Body = any> {
|
|
|
15
15
|
* This predefined Api service contains the basic API call function which can be used in various ways
|
|
16
16
|
*/
|
|
17
17
|
export declare class DyNTS_ApiService {
|
|
18
|
-
static defaultErrorUserMsg: string;
|
|
18
|
+
static readonly defaultErrorUserMsg: string;
|
|
19
19
|
/**
|
|
20
20
|
* if the callParams.getFullResponse is set to true,
|
|
21
21
|
* use the Axios.AxiosResponse type as T_Response
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/api.service.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,oBAAoB,EACrB,MAAM,4DAA4D,CAAC;AAEpE,MAAM,WAAW,yBAAyB,CAAC,MAAM,GAAG,GAAG;IACrD,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"api.service.d.ts","sourceRoot":"","sources":["../../../src/_services/core/api.service.ts"],"names":[],"mappings":"AAUA,OAAO,EACL,oBAAoB,EACrB,MAAM,4DAA4D,CAAC;AAEpE,MAAM,WAAW,yBAAyB,CAAC,MAAM,GAAG,GAAG;IACrD,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;KACzB,CAAC;IACF;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAE3B,MAAM,CAAC,QAAQ,CAAC,mBAAmB,SAGH;IAEhC;;;;;;;OAOG;WACiB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,GAAG;IACvD;;;OAGG;IACH,UAAU,EAAE,oBAAoB;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC,GAC9C,OAAO,CAAC,UAAU,CAA6B;IAqHlD,OAAO,CAAC,MAAM,CAAC,WAAW;mBA6GL,YAAY;mBA4BZ,MAAM;mBAsBN,GAAG;IAwBxB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAyBvB,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B,OAAO,CAAC,MAAM,CAAC,eAAe;IA0D9B,OAAO,CAAC,MAAM,CAAC,wBAAwB;CAexC"}
|
|
@@ -32,8 +32,18 @@ class DyNTS_ApiService {
|
|
|
32
32
|
inputParams) {
|
|
33
33
|
try {
|
|
34
34
|
let a;
|
|
35
|
-
let url = callParams.baseUrl + callParams.
|
|
35
|
+
let url = callParams.baseUrl + callParams.endpoint;
|
|
36
36
|
const axios = Axios.default.create();
|
|
37
|
+
if (callParams.pathParamKeys.length) {
|
|
38
|
+
callParams.pathParamKeys.forEach(key => {
|
|
39
|
+
if (!inputParams?.pathParams?.[key]) {
|
|
40
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
41
|
+
...this._getDefaultErrorSettings('startApiCall', new Error(`missing pathParam: "${key}"`)),
|
|
42
|
+
errorCode: 'NTS-API-SAC1',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
37
47
|
if (callParams?.httpOptions?.headers) {
|
|
38
48
|
this.setupHeaders(callParams, axios);
|
|
39
49
|
}
|
|
@@ -117,7 +127,7 @@ class DyNTS_ApiService {
|
|
|
117
127
|
} */
|
|
118
128
|
static handleError(callParams, error, inputParams) {
|
|
119
129
|
fsm_dynamo_1.DyFM_Log.error(`\n---> API ERROR: '${callParams?.name}' failed...` +
|
|
120
|
-
`\n${callParams?.baseUrl}${callParams?.
|
|
130
|
+
`\n${callParams?.baseUrl}${callParams?.endpoint}`);
|
|
121
131
|
if (global_settings_const_1.DyNTS_global_settings.log_settings.detailedErrors) {
|
|
122
132
|
fsm_dynamo_1.DyFM_Log.error(`\ncallParams:`, callParams);
|
|
123
133
|
}
|
|
@@ -128,7 +138,7 @@ class DyNTS_ApiService {
|
|
|
128
138
|
fsm_dynamo_1.DyFM_Log.error(`\n'${callParams.name}' was UNSUCCESSFUL` /* , new Error() */);
|
|
129
139
|
throw new fsm_dynamo_1.DyFM_Error({
|
|
130
140
|
...this._getDefaultErrorSettings(callParams.name + ' startApiCall', error.response.data),
|
|
131
|
-
errorCode: 'NTS-API-
|
|
141
|
+
errorCode: 'NTS-API-HE1',
|
|
132
142
|
message: 'API call failed on the other end! error response found...',
|
|
133
143
|
additionalContent: {
|
|
134
144
|
callParams,
|
|
@@ -141,7 +151,7 @@ class DyNTS_ApiService {
|
|
|
141
151
|
throw new fsm_dynamo_1.DyFM_Error({
|
|
142
152
|
...this._getDefaultErrorSettings(callParams.name + ' startApiCall', error),
|
|
143
153
|
status: 404,
|
|
144
|
-
errorCode: 'NTS-API-
|
|
154
|
+
errorCode: 'NTS-API-HE2',
|
|
145
155
|
message: 'DNS error; address cannot be resolved!',
|
|
146
156
|
additionalContent: {
|
|
147
157
|
callParams,
|
|
@@ -154,7 +164,7 @@ class DyNTS_ApiService {
|
|
|
154
164
|
throw new fsm_dynamo_1.DyFM_Error({
|
|
155
165
|
...this._getDefaultErrorSettings(callParams.name + ' startApiCall', error),
|
|
156
166
|
status: 404,
|
|
157
|
-
errorCode: 'NTS-API-
|
|
167
|
+
errorCode: 'NTS-API-HE3',
|
|
158
168
|
message: `Can't connect to the endpoint!`,
|
|
159
169
|
additionalContent: {
|
|
160
170
|
callParams,
|
|
@@ -166,7 +176,7 @@ class DyNTS_ApiService {
|
|
|
166
176
|
throw new fsm_dynamo_1.DyFM_Error({
|
|
167
177
|
...this._getDefaultErrorSettings(callParams.name + ' startApiCall', error),
|
|
168
178
|
status: +error.message.substring(error.message.length - 4, 3),
|
|
169
|
-
errorCode: 'NTS-API-
|
|
179
|
+
errorCode: 'NTS-API-HE4',
|
|
170
180
|
additionalContent: {
|
|
171
181
|
callParams,
|
|
172
182
|
inputParams,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../../src/_services/core/api.service.ts"],"names":[],"mappings":";;;;AACA,qDAA+B;AAE/B,sDAI+B;AAE/B,oFAAiF;AAkBjF;;GAEG;AACH,MAAa,gBAAgB;IAE3B,MAAM,
|
|
1
|
+
{"version":3,"file":"api.service.js","sourceRoot":"","sources":["../../../src/_services/core/api.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const axios_1 = tslib_1.__importDefault(require("axios"));
|
|
5
5
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
6
|
+
const api_call_params_control_model_1 = require("../../_models/control-models/api-call-params.control-model");
|
|
6
7
|
const api_service_1 = require("./api.service");
|
|
7
8
|
describe('DyNTS_ApiService', () => {
|
|
8
9
|
let callParams;
|
|
9
10
|
let inputParams;
|
|
10
11
|
beforeEach(() => {
|
|
11
|
-
callParams = {
|
|
12
|
+
callParams = new api_call_params_control_model_1.DyNTS_ApiCall_Params({
|
|
12
13
|
baseUrl: 'http://example.com',
|
|
13
|
-
|
|
14
|
+
endpoint: '/api/test',
|
|
14
15
|
type: fsm_dynamo_1.DyFM_HttpCallType.get,
|
|
15
16
|
httpOptions: {
|
|
16
17
|
headers: {},
|
|
@@ -18,7 +19,7 @@ describe('DyNTS_ApiService', () => {
|
|
|
18
19
|
},
|
|
19
20
|
name: 'Test API Call',
|
|
20
21
|
getFullResponse: false,
|
|
21
|
-
};
|
|
22
|
+
});
|
|
22
23
|
inputParams = {
|
|
23
24
|
pathParams: { id: '123' },
|
|
24
25
|
body: { key: 'value' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.service.spec.js","sourceRoot":"","sources":["../../../src/_services/core/api.service.spec.ts"],"names":[],"mappings":";;;AACA,0DAA0B;AAE1B,sDAA6F;
|
|
1
|
+
{"version":3,"file":"api.service.spec.js","sourceRoot":"","sources":["../../../src/_services/core/api.service.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,13 +8,13 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
8
8
|
const params = new DyNTS_ApiCall_Params({
|
|
9
9
|
name: 'testCall',
|
|
10
10
|
type: DyFM_HttpCallType.get,
|
|
11
|
-
|
|
11
|
+
endpoint: '/test/endpoint',
|
|
12
12
|
baseUrl: 'https://example.com/api',
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
expect(params.name).toBe('testCall');
|
|
16
16
|
expect(params.type).toBe(DyFM_HttpCallType.get);
|
|
17
|
-
expect(params.
|
|
17
|
+
expect(params.endpoint).toBe('/test/endpoint');
|
|
18
18
|
expect(params.baseUrl).toBe('https://example.com/api');
|
|
19
19
|
expect(params.getFullResponse).toBe(false);
|
|
20
20
|
expect(params.httpOptions).toEqual({});
|
|
@@ -32,7 +32,7 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
32
32
|
const params = new DyNTS_ApiCall_Params({
|
|
33
33
|
name: 'testCall',
|
|
34
34
|
type: DyFM_HttpCallType.post,
|
|
35
|
-
|
|
35
|
+
endpoint: '/test/endpoint',
|
|
36
36
|
baseUrl: 'https://example.com/api',
|
|
37
37
|
getFullResponse: true,
|
|
38
38
|
httpOptions: httpOptions,
|
|
@@ -40,7 +40,7 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
40
40
|
|
|
41
41
|
expect(params.name).toBe('testCall');
|
|
42
42
|
expect(params.type).toBe(DyFM_HttpCallType.post);
|
|
43
|
-
expect(params.
|
|
43
|
+
expect(params.endpoint).toBe('/test/endpoint');
|
|
44
44
|
expect(params.baseUrl).toBe('https://example.com/api');
|
|
45
45
|
expect(params.getFullResponse).toBe(true);
|
|
46
46
|
expect(params.httpOptions).toEqual(httpOptions);
|
|
@@ -52,7 +52,7 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
52
52
|
const params = new DyNTS_ApiCall_Params({
|
|
53
53
|
name: 'testCall',
|
|
54
54
|
type: DyFM_HttpCallType.get,
|
|
55
|
-
|
|
55
|
+
endpoint: '/test/{param}/endpoint',
|
|
56
56
|
baseUrl: 'https://example.com/api',
|
|
57
57
|
});
|
|
58
58
|
|
|
@@ -60,7 +60,7 @@ describe('DyNTS_ApiCall_Params', () => {
|
|
|
60
60
|
'using {param} bracets in endpoint definitions will be deprecated... (/test/{param}/endpoint)' +
|
|
61
61
|
'use :param instead ({pathparam} --> :pathparam)'
|
|
62
62
|
);
|
|
63
|
-
expect(params.
|
|
63
|
+
expect(params.endpoint).toBe('/test/:param/endpoint');
|
|
64
64
|
});
|
|
65
65
|
});
|
|
66
66
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
import { DyFM_HttpCallType, DyFM_HttpResponseType, DyFM_Log, } from '@futdevpro/fsm-dynamo';
|
|
3
|
+
import { DyNTS_global_settings } from '../../_collections/global-settings.const';
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* API call params,
|
|
@@ -16,7 +17,7 @@ export class DyNTS_ApiCall_Params {
|
|
|
16
17
|
/**
|
|
17
18
|
* type of the call as; HttpCallType .get, .post, ...ect
|
|
18
19
|
*/
|
|
19
|
-
type: DyFM_HttpCallType;
|
|
20
|
+
type: DyFM_HttpCallType = DyFM_HttpCallType.get;
|
|
20
21
|
/**
|
|
21
22
|
* the endpoint of the API, without the baseUrl:
|
|
22
23
|
* '/user/get/:userId',
|
|
@@ -27,65 +28,51 @@ export class DyNTS_ApiCall_Params {
|
|
|
27
28
|
* baseUrl of the API;
|
|
28
29
|
* 'https://futdevpro.hu/api'
|
|
29
30
|
*/
|
|
30
|
-
|
|
31
|
+
endpoint: string;
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
34
|
* if this value is true, the call will return the full HTTP call response in raw
|
|
34
35
|
*/
|
|
35
|
-
getFullResponse: boolean;
|
|
36
|
+
getFullResponse: boolean = false;
|
|
36
37
|
/**
|
|
37
38
|
* this setting will be passed to the axios http call
|
|
38
39
|
*/
|
|
39
|
-
httpOptions: any;
|
|
40
|
+
httpOptions: any = {};
|
|
41
|
+
|
|
42
|
+
pathParamKeys: string[] = [];
|
|
40
43
|
|
|
41
44
|
constructor(
|
|
42
45
|
/**
|
|
43
46
|
* set of options necessary for setting up an API call
|
|
44
47
|
*/
|
|
45
|
-
set:
|
|
46
|
-
/**
|
|
47
|
-
* name the call to be able to identify it when debugging
|
|
48
|
-
*/
|
|
49
|
-
name: string,
|
|
50
|
-
/**
|
|
51
|
-
* set type as; HttpCallType .get, .post, ...ect
|
|
52
|
-
*/
|
|
53
|
-
type: DyFM_HttpCallType,
|
|
54
|
-
/**
|
|
55
|
-
* the endpoint of the API, without the baseUrl:
|
|
56
|
-
* '/user/get/:userId',
|
|
57
|
-
* where the parts starting with ':', will be used as pathParam
|
|
58
|
-
*/
|
|
59
|
-
endPoint: string,
|
|
60
|
-
/**
|
|
61
|
-
* baseUrl of the API;
|
|
62
|
-
* 'https://futdevpro.hu/api'
|
|
63
|
-
*/
|
|
64
|
-
baseUrl: string,
|
|
65
|
-
/**
|
|
66
|
-
* setting this value to true, will return the full HTTP call response in raw
|
|
67
|
-
*/
|
|
68
|
-
getFullResponse?: boolean,
|
|
69
|
-
/**
|
|
70
|
-
* this setting will pass any kind of http setting used by the axios http messaging package
|
|
71
|
-
*/
|
|
72
|
-
httpOptions?: DyNTS_HttpOptions,
|
|
73
|
-
}
|
|
48
|
+
set: Partial<DyNTS_ApiCall_Params>
|
|
74
49
|
) {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
50
|
+
|
|
51
|
+
if (!set.name) {
|
|
52
|
+
DyFM_Log.warn('you should provide a name for the API call');
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (!set.baseUrl) {
|
|
56
|
+
DyFM_Log.error('baseUrl is not provided, using global baseUrl');
|
|
57
|
+
this.baseUrl = DyNTS_global_settings.baseUrl;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (!set.endpoint) {
|
|
61
|
+
DyFM_Log.error('endPoint is not provided, using global endPoint');
|
|
62
|
+
this.endpoint = '';
|
|
63
|
+
} else if (set.endpoint.includes('{')) {
|
|
79
64
|
DyFM_Log.warn(
|
|
80
|
-
`using {param} bracets in endpoint definitions will be deprecated... (${set.
|
|
65
|
+
`using {param} bracets in endpoint definitions will be deprecated... (${set.endpoint})` +
|
|
81
66
|
'use :param instead ({pathparam} --> :pathparam)'
|
|
82
67
|
);
|
|
83
|
-
set.
|
|
68
|
+
set.endpoint = set.endpoint.replace(/{/g, ':').replace(/}/g, '');
|
|
69
|
+
} else {
|
|
70
|
+
this.pathParamKeys = set.endpoint.split('/')
|
|
71
|
+
.filter(part => part.startsWith(':'))
|
|
72
|
+
.map(part => part.slice(1));
|
|
84
73
|
}
|
|
85
|
-
|
|
86
|
-
this
|
|
87
|
-
this.getFullResponse = !!set.getFullResponse;
|
|
88
|
-
this.httpOptions = set.httpOptions ? set.httpOptions : {};
|
|
74
|
+
|
|
75
|
+
Object.assign(this, set);
|
|
89
76
|
}
|
|
90
77
|
}
|
|
91
78
|
|
|
@@ -11,9 +11,9 @@ describe('DyNTS_ApiService', () => {
|
|
|
11
11
|
let inputParams: DyNTS_ApiCallInput_Params;
|
|
12
12
|
|
|
13
13
|
beforeEach(() => {
|
|
14
|
-
callParams = {
|
|
14
|
+
callParams = new DyNTS_ApiCall_Params({
|
|
15
15
|
baseUrl: 'http://example.com',
|
|
16
|
-
|
|
16
|
+
endpoint: '/api/test',
|
|
17
17
|
type: DyFM_HttpCallType.get,
|
|
18
18
|
httpOptions: {
|
|
19
19
|
headers: {},
|
|
@@ -21,7 +21,7 @@ describe('DyNTS_ApiService', () => {
|
|
|
21
21
|
},
|
|
22
22
|
name: 'Test API Call',
|
|
23
23
|
getFullResponse: false,
|
|
24
|
-
};
|
|
24
|
+
});
|
|
25
25
|
|
|
26
26
|
inputParams = {
|
|
27
27
|
pathParams: { id: '123' },
|
|
@@ -30,7 +30,7 @@ export interface DyNTS_ApiCallInput_Params<T_Body = any> {
|
|
|
30
30
|
*/
|
|
31
31
|
export class DyNTS_ApiService {
|
|
32
32
|
|
|
33
|
-
static defaultErrorUserMsg =
|
|
33
|
+
static readonly defaultErrorUserMsg =
|
|
34
34
|
`We encountered a BackEnd API Error, ` +
|
|
35
35
|
`\nplease contact the responsible development team.\n` +
|
|
36
36
|
`\n(Internal BE to BE error)`;
|
|
@@ -56,9 +56,23 @@ export class DyNTS_ApiService {
|
|
|
56
56
|
): Promise<T_Response /* | Axios.AxiosResponse */> {
|
|
57
57
|
try {
|
|
58
58
|
let a: T_Response;
|
|
59
|
-
let url: string = callParams.baseUrl + callParams.
|
|
59
|
+
let url: string = callParams.baseUrl + callParams.endpoint;
|
|
60
60
|
const axios = Axios.default.create();
|
|
61
61
|
|
|
62
|
+
if (callParams.pathParamKeys.length) {
|
|
63
|
+
callParams.pathParamKeys.forEach(key => {
|
|
64
|
+
if (!inputParams?.pathParams?.[key]) {
|
|
65
|
+
throw new DyFM_Error({
|
|
66
|
+
...this._getDefaultErrorSettings(
|
|
67
|
+
'startApiCall',
|
|
68
|
+
new Error(`missing pathParam: "${key}"`)
|
|
69
|
+
),
|
|
70
|
+
errorCode: 'NTS-API-SAC1',
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
62
76
|
if (callParams?.httpOptions?.headers) {
|
|
63
77
|
this.setupHeaders(callParams, axios);
|
|
64
78
|
}
|
|
@@ -169,7 +183,7 @@ export class DyNTS_ApiService {
|
|
|
169
183
|
): void {
|
|
170
184
|
DyFM_Log.error(
|
|
171
185
|
`\n---> API ERROR: '${callParams?.name}' failed...` +
|
|
172
|
-
`\n${callParams?.baseUrl}${callParams?.
|
|
186
|
+
`\n${callParams?.baseUrl}${callParams?.endpoint}`
|
|
173
187
|
);
|
|
174
188
|
|
|
175
189
|
if (DyNTS_global_settings.log_settings.detailedErrors) {
|
|
@@ -189,7 +203,7 @@ export class DyNTS_ApiService {
|
|
|
189
203
|
error.response.data
|
|
190
204
|
),
|
|
191
205
|
|
|
192
|
-
errorCode: 'NTS-API-
|
|
206
|
+
errorCode: 'NTS-API-HE1',
|
|
193
207
|
message: 'API call failed on the other end! error response found...',
|
|
194
208
|
additionalContent: {
|
|
195
209
|
callParams,
|
|
@@ -207,7 +221,7 @@ export class DyNTS_ApiService {
|
|
|
207
221
|
),
|
|
208
222
|
|
|
209
223
|
status: 404,
|
|
210
|
-
errorCode: 'NTS-API-
|
|
224
|
+
errorCode: 'NTS-API-HE2',
|
|
211
225
|
message: 'DNS error; address cannot be resolved!',
|
|
212
226
|
additionalContent: {
|
|
213
227
|
callParams,
|
|
@@ -225,7 +239,7 @@ export class DyNTS_ApiService {
|
|
|
225
239
|
),
|
|
226
240
|
|
|
227
241
|
status: 404,
|
|
228
|
-
errorCode: 'NTS-API-
|
|
242
|
+
errorCode: 'NTS-API-HE3',
|
|
229
243
|
message: `Can't connect to the endpoint!`,
|
|
230
244
|
additionalContent: {
|
|
231
245
|
callParams,
|
|
@@ -242,7 +256,7 @@ export class DyNTS_ApiService {
|
|
|
242
256
|
),
|
|
243
257
|
|
|
244
258
|
status: +error.message.substring(error.message.length - 4, 3),
|
|
245
|
-
errorCode: 'NTS-API-
|
|
259
|
+
errorCode: 'NTS-API-HE4',
|
|
246
260
|
additionalContent: {
|
|
247
261
|
callParams,
|
|
248
262
|
inputParams,
|