@smess/networking 1.0.6 → 1.0.8
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/README.md +58 -0
- package/dist/core/axios.d.ts +6 -6
- package/dist/core/axios.js +22 -24
- package/dist/core/axios.observable.js +15 -17
- package/dist/core/base.provider.advanced.test.js +11 -7
- package/dist/core/base.provider.d.ts +6 -6
- package/dist/core/base.provider.js +8 -8
- package/dist/core/base.provider.test.js +12 -8
- package/dist/core/base.service.wrapper.advanced.test.js +14 -22
- package/dist/core/base.service.wrapper.js +4 -7
- package/dist/core/base.service.wrapper.test.js +5 -7
- package/dist/core/rx.http.service.d.ts +21 -21
- package/dist/core/rx.http.service.js +22 -24
- package/dist/index.d.ts +12 -9
- package/dist/index.js +12 -9
- package/dist/{src/services → services}/auth.service.d.ts +2 -2
- package/dist/{src/services → services}/auth.service.js +1 -1
- package/dist/{src/services → services}/auth.service.test.js +2 -2
- package/dist/{src/services → services}/customer.service.d.ts +2 -2
- package/dist/{src/services → services}/customer.service.js +1 -1
- package/dist/{src/services → services}/customer.service.test.js +2 -2
- package/dist/services/logger.service.d.ts +5 -5
- package/dist/services/logger.service.js +4 -8
- package/dist/services/logger.service.test.js +16 -18
- package/dist/{src/services → services}/order.service.d.ts +2 -2
- package/dist/{src/services → services}/order.service.js +1 -1
- package/dist/{src/services → services}/order.service.test.js +2 -2
- package/dist/{src/services → services}/product.service.js +2 -2
- package/dist/{src/services → services}/product.service.test.js +3 -3
- package/dist/services/smess.service.d.ts +10 -3
- package/dist/services/smess.service.js +40 -48
- package/dist/services/smess.service.test.js +52 -33
- package/dist/{src/services → services}/store.service.d.ts +2 -2
- package/dist/{src/services → services}/store.service.js +1 -1
- package/dist/{src/services → services}/store.service.test.js +2 -2
- package/dist/{src/services → services}/user.service.js +2 -2
- package/dist/{src/services → services}/user.service.test.js +3 -3
- package/dist/types/types.d.ts +12 -8
- package/dist/types/types.js +6 -13
- package/dist/types/types.test.js +5 -7
- package/dist/utils/networking-import.js +3 -43
- package/dist/utils/rxjs-import.js +5 -34
- package/package.json +7 -1
- package/dist/core/product.service.d.ts +0 -19
- package/dist/core/product.service.js +0 -46
- package/dist/core/product.service.test.js +0 -63
- package/dist/core/user.service.d.ts +0 -15
- package/dist/core/user.service.js +0 -39
- package/dist/core/user.service.test.js +0 -45
- package/dist/scripts/real-test.d.ts +0 -1
- package/dist/scripts/real-test.js +0 -242
- package/dist/src/core/axios.d.ts +0 -44
- package/dist/src/core/axios.js +0 -65
- package/dist/src/core/axios.observable.d.ts +0 -11
- package/dist/src/core/axios.observable.js +0 -58
- package/dist/src/core/base.provider.advanced.test.d.ts +0 -1
- package/dist/src/core/base.provider.advanced.test.js +0 -29
- package/dist/src/core/base.provider.d.ts +0 -15
- package/dist/src/core/base.provider.js +0 -13
- package/dist/src/core/base.provider.test.d.ts +0 -1
- package/dist/src/core/base.provider.test.js +0 -32
- package/dist/src/core/base.service.wrapper.advanced.test.d.ts +0 -1
- package/dist/src/core/base.service.wrapper.advanced.test.js +0 -36
- package/dist/src/core/base.service.wrapper.d.ts +0 -7
- package/dist/src/core/base.service.wrapper.js +0 -11
- package/dist/src/core/base.service.wrapper.test.d.ts +0 -1
- package/dist/src/core/base.service.wrapper.test.js +0 -25
- package/dist/src/core/rx.http.service.d.ts +0 -44
- package/dist/src/core/rx.http.service.js +0 -65
- package/dist/src/domain/auth.provider.d.ts +0 -12
- package/dist/src/domain/auth.provider.js +0 -67
- package/dist/src/domain/product.service.js +0 -47
- package/dist/src/domain/smess.service.d.ts +0 -35
- package/dist/src/domain/smess.service.js +0 -137
- package/dist/src/domain/tests/auth.service.test.js +0 -80
- package/dist/src/domain/tests/product.service.test.d.ts +0 -1
- package/dist/src/domain/tests/product.service.test.js +0 -47
- package/dist/src/domain/tests/smess.service.test.d.ts +0 -1
- package/dist/src/domain/tests/smess.service.test.js +0 -106
- package/dist/src/domain/tests/user.service.test.d.ts +0 -1
- package/dist/src/domain/tests/user.service.test.js +0 -51
- package/dist/src/domain/user.service.js +0 -39
- package/dist/src/services/auth.service.test.d.ts +0 -1
- package/dist/src/services/logger.service.d.ts +0 -31
- package/dist/src/services/logger.service.js +0 -93
- package/dist/src/services/logger.service.test.d.ts +0 -1
- package/dist/src/services/logger.service.test.js +0 -31
- package/dist/src/services/product.service.d.ts +0 -21
- package/dist/src/services/product.service.test.d.ts +0 -1
- package/dist/src/services/smess.service.d.ts +0 -36
- package/dist/src/services/smess.service.js +0 -128
- package/dist/src/services/smess.service.test.d.ts +0 -1
- package/dist/src/services/smess.service.test.js +0 -99
- package/dist/src/services/user.service.d.ts +0 -16
- package/dist/src/services/user.service.test.d.ts +0 -1
- package/dist/src/types/types.d.ts +0 -93
- package/dist/src/types/types.js +0 -82
- package/dist/src/types/types.test.d.ts +0 -1
- package/dist/src/types/types.test.js +0 -25
- package/dist/src/utils/networking-import.d.ts +0 -4
- package/dist/src/utils/networking-import.js +0 -3
- package/dist/src/utils/rxjs-import.d.ts +0 -5
- package/dist/src/utils/rxjs-import.js +0 -5
- package/dist/utils/networking-settings.d.ts +0 -6
- package/dist/utils/networking-settings.js +0 -19
- package/dist/utils/networking-settings.test.d.ts +0 -1
- package/dist/utils/networking-settings.test.js +0 -21
- /package/dist/{src/domain/tests → services}/auth.service.test.d.ts +0 -0
- /package/dist/{src/services → services}/customer.service.test.d.ts +0 -0
- /package/dist/{src/services → services}/order.service.test.d.ts +0 -0
- /package/dist/{src/domain → services}/product.service.d.ts +0 -0
- /package/dist/{core → services}/product.service.test.d.ts +0 -0
- /package/dist/{src/services → services}/store.service.test.d.ts +0 -0
- /package/dist/{src/domain → services}/user.service.d.ts +0 -0
- /package/dist/{core → services}/user.service.test.d.ts +0 -0
package/dist/types/types.d.ts
CHANGED
|
@@ -19,9 +19,9 @@ export declare class AlertModel implements AlertModelable {
|
|
|
19
19
|
httpErrorCode: number;
|
|
20
20
|
isDisplayable: boolean;
|
|
21
21
|
title?: string | undefined;
|
|
22
|
-
data?:
|
|
22
|
+
data?: unknown | undefined;
|
|
23
23
|
buttons?: AlertButtonModelable[] | undefined;
|
|
24
|
-
constructor(message: string, httpErrorCode: number, isDisplayable?: boolean, title?: string | undefined, data?:
|
|
24
|
+
constructor(message: string, httpErrorCode: number, isDisplayable?: boolean, title?: string | undefined, data?: unknown | undefined, buttons?: AlertButtonModelable[] | undefined);
|
|
25
25
|
get isUnauthenticated(): boolean;
|
|
26
26
|
get isNetworkingError(): boolean;
|
|
27
27
|
static default(): AlertModel;
|
|
@@ -60,11 +60,8 @@ export interface ProviderType {
|
|
|
60
60
|
baseURL: string;
|
|
61
61
|
path: string;
|
|
62
62
|
method: string;
|
|
63
|
-
headers:
|
|
64
|
-
getPath(...queryParams:
|
|
65
|
-
}
|
|
66
|
-
export interface ProviderTypeMockable {
|
|
67
|
-
shouldUseMockData: boolean;
|
|
63
|
+
headers: Record<string, string | undefined>;
|
|
64
|
+
getPath(...queryParams: unknown[]): string;
|
|
68
65
|
}
|
|
69
66
|
export interface HeaderType {
|
|
70
67
|
shouldAddEncryptionHeader?: boolean;
|
|
@@ -78,7 +75,7 @@ export interface ServerValidationErrorMessage {
|
|
|
78
75
|
parameters?: {
|
|
79
76
|
error_code?: string;
|
|
80
77
|
field?: string;
|
|
81
|
-
[key: string]:
|
|
78
|
+
[key: string]: unknown;
|
|
82
79
|
};
|
|
83
80
|
}
|
|
84
81
|
export interface ServerErrorResponse {
|
|
@@ -86,4 +83,11 @@ export interface ServerErrorResponse {
|
|
|
86
83
|
[field: string]: ServerValidationErrorMessage[];
|
|
87
84
|
};
|
|
88
85
|
}
|
|
86
|
+
export interface NetworkingConfig {
|
|
87
|
+
baseUrl: string;
|
|
88
|
+
version?: string;
|
|
89
|
+
isProd: boolean;
|
|
90
|
+
clientId?: string;
|
|
91
|
+
apiKey?: string;
|
|
92
|
+
}
|
|
89
93
|
export {};
|
package/dist/types/types.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NetworkingUIEventWrapped = exports.NetworkingUIEvent = exports.ValidationErrorMessage = exports.AlertModel = exports.AlertButtonModel = void 0;
|
|
4
|
-
class AlertButtonModel {
|
|
1
|
+
export class AlertButtonModel {
|
|
5
2
|
constructor(title, handler) {
|
|
6
3
|
this.title = title;
|
|
7
4
|
this.handler = handler;
|
|
@@ -13,8 +10,7 @@ class AlertButtonModel {
|
|
|
13
10
|
return new AlertButtonModel('No', handler);
|
|
14
11
|
}
|
|
15
12
|
}
|
|
16
|
-
|
|
17
|
-
class AlertModel {
|
|
13
|
+
export class AlertModel {
|
|
18
14
|
constructor(message, httpErrorCode, isDisplayable = false, title, data, buttons) {
|
|
19
15
|
this.message = message;
|
|
20
16
|
this.httpErrorCode = httpErrorCode;
|
|
@@ -35,20 +31,18 @@ class AlertModel {
|
|
|
35
31
|
]);
|
|
36
32
|
}
|
|
37
33
|
}
|
|
38
|
-
|
|
39
|
-
class ValidationErrorMessage {
|
|
34
|
+
export class ValidationErrorMessage {
|
|
40
35
|
constructor(message) {
|
|
41
36
|
this.message = message;
|
|
42
37
|
}
|
|
43
38
|
}
|
|
44
|
-
|
|
45
|
-
var NetworkingUIEvent;
|
|
39
|
+
export var NetworkingUIEvent;
|
|
46
40
|
(function (NetworkingUIEvent) {
|
|
47
41
|
NetworkingUIEvent["waiting"] = "waiting";
|
|
48
42
|
NetworkingUIEvent["succeeded"] = "succeeded";
|
|
49
43
|
NetworkingUIEvent["failed"] = "failed";
|
|
50
|
-
})(NetworkingUIEvent || (
|
|
51
|
-
class NetworkingUIEventWrapped {
|
|
44
|
+
})(NetworkingUIEvent || (NetworkingUIEvent = {}));
|
|
45
|
+
export class NetworkingUIEventWrapped {
|
|
52
46
|
constructor(event, succeeded, failed) {
|
|
53
47
|
this.event = event;
|
|
54
48
|
this.succeeded = succeeded;
|
|
@@ -86,4 +80,3 @@ class NetworkingUIEventWrapped {
|
|
|
86
80
|
});
|
|
87
81
|
}
|
|
88
82
|
}
|
|
89
|
-
exports.NetworkingUIEventWrapped = NetworkingUIEventWrapped;
|
package/dist/types/types.test.js
CHANGED
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const types_1 = require("./types");
|
|
1
|
+
import { NetworkingUIEventWrapped, AlertModel } from './types';
|
|
4
2
|
describe('NetworkingUIEventWrapped', () => {
|
|
5
3
|
it('should wrap succeeded response', () => {
|
|
6
|
-
const wrap =
|
|
4
|
+
const wrap = NetworkingUIEventWrapped.succeeded({ foo: 'bar' });
|
|
7
5
|
expect(wrap.response).toEqual({ foo: 'bar' });
|
|
8
6
|
expect(wrap.hasSuccess).toBe(true);
|
|
9
7
|
expect(wrap.hasFailed).toBe(false);
|
|
10
8
|
expect(wrap.isWaiting).toBe(false);
|
|
11
9
|
});
|
|
12
10
|
it('should wrap failed response and set alertModel', () => {
|
|
13
|
-
const alert = new
|
|
14
|
-
const wrap =
|
|
11
|
+
const alert = new AlertModel('err', 500, true, 'Error', { detail: 'fail' });
|
|
12
|
+
const wrap = NetworkingUIEventWrapped.failed(alert);
|
|
15
13
|
expect(wrap.response).toBeNull();
|
|
16
14
|
expect(wrap.hasSuccess).toBe(false);
|
|
17
15
|
expect(wrap.hasFailed).toBe(true);
|
|
@@ -19,7 +17,7 @@ describe('NetworkingUIEventWrapped', () => {
|
|
|
19
17
|
expect(wrap.alertModel).toBe(alert);
|
|
20
18
|
});
|
|
21
19
|
it('should wrap waiting state', () => {
|
|
22
|
-
const wrap =
|
|
20
|
+
const wrap = NetworkingUIEventWrapped.waiting();
|
|
23
21
|
expect(wrap.isWaiting).toBe(true);
|
|
24
22
|
expect(wrap.hasSuccess).toBe(false);
|
|
25
23
|
expect(wrap.hasFailed).toBe(false);
|
|
@@ -1,43 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
-
var ownKeys = function(o) {
|
|
23
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
-
var ar = [];
|
|
25
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
-
return ar;
|
|
27
|
-
};
|
|
28
|
-
return ownKeys(o);
|
|
29
|
-
};
|
|
30
|
-
return function (mod) {
|
|
31
|
-
if (mod && mod.__esModule) return mod;
|
|
32
|
-
var result = {};
|
|
33
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
-
__setModuleDefault(result, mod);
|
|
35
|
-
return result;
|
|
36
|
-
};
|
|
37
|
-
})();
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.HttpStatusCode = exports.axios = void 0;
|
|
40
|
-
__exportStar(require("axios"), exports);
|
|
41
|
-
const axios_1 = __importStar(require("axios"));
|
|
42
|
-
exports.axios = axios_1.default;
|
|
43
|
-
Object.defineProperty(exports, "HttpStatusCode", { enumerable: true, get: function () { return axios_1.HttpStatusCode; } });
|
|
1
|
+
export * from 'axios';
|
|
2
|
+
import axios, { HttpStatusCode } from 'axios';
|
|
3
|
+
export { axios, HttpStatusCode };
|
|
@@ -1,34 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Object.defineProperty(exports, "Observable", { enumerable: true, get: function () { return rxjs_1.Observable; } });
|
|
7
|
-
Object.defineProperty(exports, "Subject", { enumerable: true, get: function () { return rxjs_1.Subject; } });
|
|
8
|
-
Object.defineProperty(exports, "Subscription", { enumerable: true, get: function () { return rxjs_1.Subscription; } });
|
|
9
|
-
Object.defineProperty(exports, "Subscriber", { enumerable: true, get: function () { return rxjs_1.Subscriber; } });
|
|
10
|
-
Object.defineProperty(exports, "catchError", { enumerable: true, get: function () { return rxjs_1.catchError; } });
|
|
11
|
-
Object.defineProperty(exports, "combineLatest", { enumerable: true, get: function () { return rxjs_1.combineLatest; } });
|
|
12
|
-
Object.defineProperty(exports, "concatMap", { enumerable: true, get: function () { return rxjs_1.concatMap; } });
|
|
13
|
-
Object.defineProperty(exports, "distinctUntilChanged", { enumerable: true, get: function () { return rxjs_1.distinctUntilChanged; } });
|
|
14
|
-
Object.defineProperty(exports, "filter", { enumerable: true, get: function () { return rxjs_1.filter; } });
|
|
15
|
-
Object.defineProperty(exports, "firstValueFrom", { enumerable: true, get: function () { return rxjs_1.firstValueFrom; } });
|
|
16
|
-
Object.defineProperty(exports, "from", { enumerable: true, get: function () { return rxjs_1.from; } });
|
|
17
|
-
Object.defineProperty(exports, "fromEvent", { enumerable: true, get: function () { return rxjs_1.fromEvent; } });
|
|
18
|
-
Object.defineProperty(exports, "merge", { enumerable: true, get: function () { return rxjs_1.merge; } });
|
|
19
|
-
Object.defineProperty(exports, "NEVER", { enumerable: true, get: function () { return rxjs_1.NEVER; } });
|
|
20
|
-
Object.defineProperty(exports, "interval", { enumerable: true, get: function () { return rxjs_1.interval; } });
|
|
21
|
-
Object.defineProperty(exports, "map", { enumerable: true, get: function () { return rxjs_1.map; } });
|
|
22
|
-
Object.defineProperty(exports, "mergeMap", { enumerable: true, get: function () { return rxjs_1.mergeMap; } });
|
|
23
|
-
Object.defineProperty(exports, "of", { enumerable: true, get: function () { return rxjs_1.of; } });
|
|
24
|
-
Object.defineProperty(exports, "pipe", { enumerable: true, get: function () { return rxjs_1.pipe; } });
|
|
25
|
-
Object.defineProperty(exports, "shareReplay", { enumerable: true, get: function () { return rxjs_1.shareReplay; } });
|
|
26
|
-
Object.defineProperty(exports, "startWith", { enumerable: true, get: function () { return rxjs_1.startWith; } });
|
|
27
|
-
Object.defineProperty(exports, "tap", { enumerable: true, get: function () { return rxjs_1.tap; } });
|
|
28
|
-
Object.defineProperty(exports, "timeout", { enumerable: true, get: function () { return rxjs_1.timeout; } });
|
|
29
|
-
Object.defineProperty(exports, "retry", { enumerable: true, get: function () { return rxjs_1.retry; } });
|
|
30
|
-
Object.defineProperty(exports, "throwError", { enumerable: true, get: function () { return rxjs_1.throwError; } });
|
|
31
|
-
Object.defineProperty(exports, "combineLatestWith", { enumerable: true, get: function () { return rxjs_1.combineLatestWith; } });
|
|
32
|
-
Object.defineProperty(exports, "debounceTime", { enumerable: true, get: function () { return rxjs_1.debounceTime; } });
|
|
33
|
-
Object.defineProperty(exports, "delay", { enumerable: true, get: function () { return rxjs_1.delay; } });
|
|
34
|
-
Object.defineProperty(exports, "takeUntil", { enumerable: true, get: function () { return rxjs_1.takeUntil; } });
|
|
1
|
+
import { BehaviorSubject, Observable, Subject, Subscription, Subscriber, catchError, combineLatest, concatMap, distinctUntilChanged, filter, firstValueFrom, from, fromEvent, merge, NEVER, interval, map, mergeMap, of, pipe, shareReplay, startWith, tap, timeout, retry, throwError, combineLatestWith, debounceTime, delay, takeUntil } from 'rxjs';
|
|
2
|
+
export { Observable, Subject, BehaviorSubject, Subscription, Subscriber };
|
|
3
|
+
export { startWith, firstValueFrom, from, fromEvent, tap, pipe, distinctUntilChanged, of, mergeMap, interval, map, concatMap, combineLatest, merge, combineLatestWith, debounceTime, delay, timeout, retry, takeUntil, NEVER };
|
|
4
|
+
export { shareReplay, filter };
|
|
5
|
+
export { catchError, throwError };
|
package/package.json
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smess/networking",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "Networking utilities and services for SMESS platform.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"types": "./dist/index.d.ts"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
7
13
|
"type": "module",
|
|
8
14
|
"scripts": {
|
|
9
15
|
"build": "tsc",
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { BaseProvider } from './base.provider';
|
|
2
|
-
import { BaseServiceWrapper } from './base.service.wrapper';
|
|
3
|
-
export interface Product {
|
|
4
|
-
id: number;
|
|
5
|
-
name: string;
|
|
6
|
-
price: number;
|
|
7
|
-
}
|
|
8
|
-
export declare class ProductProvider extends BaseProvider {
|
|
9
|
-
constructor({ productId, method }?: {
|
|
10
|
-
productId?: number;
|
|
11
|
-
method?: string;
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
export declare class ProductService extends BaseServiceWrapper<ProductProvider> {
|
|
15
|
-
constructor(productId?: number, method?: string);
|
|
16
|
-
fetchProductById(id: number): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product>>;
|
|
17
|
-
fetchAllProducts(): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product[]>>;
|
|
18
|
-
createProduct(product: Omit<Product, 'id'>): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<Product>>;
|
|
19
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ProductService = exports.ProductProvider = void 0;
|
|
4
|
-
const base_provider_1 = require("./base.provider");
|
|
5
|
-
const base_service_wrapper_1 = require("./base.service.wrapper");
|
|
6
|
-
// ProductProvider implements ProviderType for product endpoints
|
|
7
|
-
class ProductProvider extends base_provider_1.BaseProvider {
|
|
8
|
-
constructor({ productId, method } = {}) {
|
|
9
|
-
super({
|
|
10
|
-
baseURL: 'https://fakestoreapi.com',
|
|
11
|
-
path: productId ? `/products/${productId}` : '/products',
|
|
12
|
-
method: method || 'GET',
|
|
13
|
-
headers: { 'Content-Type': 'application/json' },
|
|
14
|
-
getPath: () => (productId ? `/products/${productId}` : '/products'),
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.ProductProvider = ProductProvider;
|
|
19
|
-
// ProductService provides high-level methods for product API
|
|
20
|
-
class ProductService extends base_service_wrapper_1.BaseServiceWrapper {
|
|
21
|
-
constructor(productId, method) {
|
|
22
|
-
super(new ProductProvider({ productId, method }));
|
|
23
|
-
}
|
|
24
|
-
// Fetch a product by ID
|
|
25
|
-
fetchProductById(id) {
|
|
26
|
-
this.provider = new ProductProvider({ productId: id });
|
|
27
|
-
return this.request();
|
|
28
|
-
}
|
|
29
|
-
// Fetch all products
|
|
30
|
-
fetchAllProducts() {
|
|
31
|
-
this.provider = new ProductProvider();
|
|
32
|
-
return this.request();
|
|
33
|
-
}
|
|
34
|
-
// Create a new product (POST)
|
|
35
|
-
createProduct(product) {
|
|
36
|
-
this.provider = new ProductProvider({ method: 'POST' });
|
|
37
|
-
return this.request(product);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.ProductService = ProductService;
|
|
41
|
-
// Example usage:
|
|
42
|
-
// setNetworkingConfig({ baseUrl: 'https://fakestoreapi.com', isProd: false });
|
|
43
|
-
// const productService = new ProductService();
|
|
44
|
-
// productService.fetchProductById(1).subscribe(result => console.log(result));
|
|
45
|
-
// productService.fetchAllProducts().subscribe(result => console.log(result));
|
|
46
|
-
// productService.createProduct({ name: 'New Product', price: 99.99 }).subscribe(result => console.log(result));
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const product_service_1 = require("./product.service");
|
|
4
|
-
const types_1 = require("../types/types");
|
|
5
|
-
const rxjs_1 = require("rxjs");
|
|
6
|
-
jest.mock('./base.service.wrapper', () => {
|
|
7
|
-
const actual = jest.requireActual('./base.service.wrapper');
|
|
8
|
-
return Object.assign(Object.assign({}, actual), { BaseServiceWrapper: class {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.request = jest.fn((payload) => {
|
|
11
|
-
if (payload === 'error') {
|
|
12
|
-
return (0, rxjs_1.throwError)(() => new Error('Test error'));
|
|
13
|
-
}
|
|
14
|
-
return (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded({ id: 1, name: 'Product', price: 10 }));
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
} });
|
|
18
|
-
});
|
|
19
|
-
describe('ProductService', () => {
|
|
20
|
-
it('fetchProductById should return product (success)', done => {
|
|
21
|
-
const service = new product_service_1.ProductService();
|
|
22
|
-
service.fetchProductById(1).subscribe(result => {
|
|
23
|
-
expect(result.response).toEqual({ id: 1, name: 'Product', price: 10 });
|
|
24
|
-
done();
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
it('fetchAllProducts should return products (success)', done => {
|
|
28
|
-
const service = new product_service_1.ProductService();
|
|
29
|
-
service.fetchAllProducts().subscribe(result => {
|
|
30
|
-
expect(result.response).toEqual({ id: 1, name: 'Product', price: 10 });
|
|
31
|
-
done();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
it('createProduct should return product (success)', done => {
|
|
35
|
-
const service = new product_service_1.ProductService();
|
|
36
|
-
service.createProduct({ name: 'New', price: 99 }).subscribe(result => {
|
|
37
|
-
expect(result.response).toEqual({ id: 1, name: 'Product', price: 10 });
|
|
38
|
-
done();
|
|
39
|
-
});
|
|
40
|
-
});
|
|
41
|
-
it('request should handle error (fetchProductById)', done => {
|
|
42
|
-
const service = new product_service_1.ProductService();
|
|
43
|
-
service.request = jest.fn(() => (0, rxjs_1.throwError)(() => new Error('Test error')));
|
|
44
|
-
service.request('error').subscribe({
|
|
45
|
-
error: err => {
|
|
46
|
-
expect(err).toBeInstanceOf(Error);
|
|
47
|
-
expect(err.message).toBe('Test error');
|
|
48
|
-
done();
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
it('request should handle error (createProduct)', done => {
|
|
53
|
-
const service = new product_service_1.ProductService();
|
|
54
|
-
service.request = jest.fn(() => (0, rxjs_1.throwError)(() => new Error('Test error')));
|
|
55
|
-
service.request('error').subscribe({
|
|
56
|
-
error: err => {
|
|
57
|
-
expect(err).toBeInstanceOf(Error);
|
|
58
|
-
expect(err.message).toBe('Test error');
|
|
59
|
-
done();
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
});
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { BaseProvider } from './base.provider';
|
|
2
|
-
import { BaseServiceWrapper } from './base.service.wrapper';
|
|
3
|
-
export interface User {
|
|
4
|
-
id: number;
|
|
5
|
-
name: string;
|
|
6
|
-
email: string;
|
|
7
|
-
}
|
|
8
|
-
export declare class UserProvider extends BaseProvider {
|
|
9
|
-
constructor(userId?: number);
|
|
10
|
-
}
|
|
11
|
-
export declare class UserService extends BaseServiceWrapper<UserProvider> {
|
|
12
|
-
constructor(userId?: number);
|
|
13
|
-
fetchUserById(id: number): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<User>>;
|
|
14
|
-
fetchAllUsers(): import("rxjs").Observable<import("../types/types").NetworkingUIEventWrapped<User[]>>;
|
|
15
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UserService = exports.UserProvider = void 0;
|
|
4
|
-
const base_provider_1 = require("./base.provider");
|
|
5
|
-
const base_service_wrapper_1 = require("./base.service.wrapper");
|
|
6
|
-
// UserProvider implements ProviderType for user endpoints
|
|
7
|
-
class UserProvider extends base_provider_1.BaseProvider {
|
|
8
|
-
constructor(userId) {
|
|
9
|
-
super({
|
|
10
|
-
baseURL: 'https://jsonplaceholder.typicode.com',
|
|
11
|
-
path: userId ? `/users/${userId}` : '/users',
|
|
12
|
-
method: 'GET',
|
|
13
|
-
headers: {},
|
|
14
|
-
getPath: () => (userId ? `/users/${userId}` : '/users'),
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.UserProvider = UserProvider;
|
|
19
|
-
// UserService provides high-level methods for user API
|
|
20
|
-
class UserService extends base_service_wrapper_1.BaseServiceWrapper {
|
|
21
|
-
constructor(userId) {
|
|
22
|
-
super(new UserProvider(userId));
|
|
23
|
-
}
|
|
24
|
-
// Fetch a user by ID
|
|
25
|
-
fetchUserById(id) {
|
|
26
|
-
this.provider = new UserProvider(id);
|
|
27
|
-
return this.request();
|
|
28
|
-
}
|
|
29
|
-
// Fetch all users
|
|
30
|
-
fetchAllUsers() {
|
|
31
|
-
this.provider = new UserProvider();
|
|
32
|
-
return this.request();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.UserService = UserService;
|
|
36
|
-
// Example usage:
|
|
37
|
-
// setNetworkingConfig({ baseUrl: 'https://jsonplaceholder.typicode.com', isProd: false });
|
|
38
|
-
// const userService = new UserService();
|
|
39
|
-
// userService.fetchUserById(1).subscribe(result => console.log(result));
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const user_service_1 = require("./user.service");
|
|
4
|
-
const types_1 = require("../types/types");
|
|
5
|
-
const rxjs_1 = require("rxjs");
|
|
6
|
-
jest.mock('./base.service.wrapper', () => {
|
|
7
|
-
const actual = jest.requireActual('./base.service.wrapper');
|
|
8
|
-
return Object.assign(Object.assign({}, actual), { BaseServiceWrapper: class {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.request = jest.fn((payload) => {
|
|
11
|
-
if (payload === 'error') {
|
|
12
|
-
return (0, rxjs_1.throwError)(() => new Error('Test error'));
|
|
13
|
-
}
|
|
14
|
-
return (0, rxjs_1.of)(types_1.NetworkingUIEventWrapped.succeeded({ id: 1, name: 'Test', email: 'test@example.com' }));
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
} });
|
|
18
|
-
});
|
|
19
|
-
describe('UserService', () => {
|
|
20
|
-
it('fetchUserById should return user (success)', done => {
|
|
21
|
-
const service = new user_service_1.UserService();
|
|
22
|
-
service.fetchUserById(1).subscribe(result => {
|
|
23
|
-
expect(result.response).toEqual({ id: 1, name: 'Test', email: 'test@example.com' });
|
|
24
|
-
done();
|
|
25
|
-
});
|
|
26
|
-
});
|
|
27
|
-
it('fetchAllUsers should return users (success)', done => {
|
|
28
|
-
const service = new user_service_1.UserService();
|
|
29
|
-
service.fetchAllUsers().subscribe(result => {
|
|
30
|
-
expect(result.response).toEqual({ id: 1, name: 'Test', email: 'test@example.com' });
|
|
31
|
-
done();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
it('request should handle error', done => {
|
|
35
|
-
const service = new user_service_1.UserService();
|
|
36
|
-
service.request = jest.fn(() => (0, rxjs_1.throwError)(() => new Error('Test error')));
|
|
37
|
-
service.request('error').subscribe({
|
|
38
|
-
error: err => {
|
|
39
|
-
expect(err).toBeInstanceOf(Error);
|
|
40
|
-
expect(err.message).toBe('Test error');
|
|
41
|
-
done();
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|