@smess/networking 1.0.10 → 1.0.12

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.
Files changed (54) hide show
  1. package/README.md +26 -20
  2. package/dist/core/axios.d.ts +3 -3
  3. package/dist/core/axios.js +2 -2
  4. package/dist/core/axios.observable.d.ts +3 -3
  5. package/dist/core/axios.observable.js +7 -7
  6. package/dist/core/base.provider.advanced.test.js +15 -15
  7. package/dist/core/base.provider.d.ts +1 -1
  8. package/dist/core/base.provider.js +2 -2
  9. package/dist/core/base.provider.test.js +22 -18
  10. package/dist/core/base.service.wrapper.advanced.test.js +16 -13
  11. package/dist/core/base.service.wrapper.d.ts +2 -2
  12. package/dist/core/base.service.wrapper.js +1 -1
  13. package/dist/core/base.service.wrapper.test.js +14 -14
  14. package/dist/core/rx.http.service.d.ts +3 -3
  15. package/dist/core/rx.http.service.js +2 -2
  16. package/dist/index.d.ts +13 -13
  17. package/dist/index.js +15 -15
  18. package/dist/services/auth.service.d.ts +6 -5
  19. package/dist/services/auth.service.js +50 -28
  20. package/dist/services/auth.service.test.js +67 -51
  21. package/dist/services/cache.service.d.ts +1 -1
  22. package/dist/services/cache.service.js +7 -7
  23. package/dist/services/cache.service.test.d.ts +1 -1
  24. package/dist/services/cache.service.test.js +37 -37
  25. package/dist/services/customer.service.d.ts +4 -4
  26. package/dist/services/customer.service.js +19 -17
  27. package/dist/services/customer.service.test.js +38 -34
  28. package/dist/services/logger.service.js +11 -11
  29. package/dist/services/logger.service.test.js +12 -12
  30. package/dist/services/order.service.d.ts +4 -4
  31. package/dist/services/order.service.js +32 -30
  32. package/dist/services/order.service.test.js +47 -47
  33. package/dist/services/product.service.d.ts +4 -4
  34. package/dist/services/product.service.js +8 -8
  35. package/dist/services/product.service.test.js +27 -19
  36. package/dist/services/smess.service.d.ts +2 -2
  37. package/dist/services/smess.service.js +19 -19
  38. package/dist/services/smess.service.test.js +36 -32
  39. package/dist/services/store.service.d.ts +4 -4
  40. package/dist/services/store.service.js +70 -50
  41. package/dist/services/store.service.test.d.ts +1 -1
  42. package/dist/services/store.service.test.js +161 -85
  43. package/dist/services/user.service.d.ts +3 -3
  44. package/dist/services/user.service.js +11 -8
  45. package/dist/services/user.service.test.js +23 -17
  46. package/dist/types/types.js +3 -3
  47. package/dist/types/types.test.js +8 -8
  48. package/dist/utils/cache-import.d.ts +1 -1
  49. package/dist/utils/cache-import.js +1 -1
  50. package/dist/utils/networking-import.d.ts +3 -3
  51. package/dist/utils/networking-import.js +2 -2
  52. package/dist/utils/rxjs-import.d.ts +2 -2
  53. package/dist/utils/rxjs-import.js +2 -2
  54. package/package.json +1 -1
@@ -1,4 +1,6 @@
1
- import { Accept, SMESSHeader, SmessService } from './smess.service';
1
+ import { Accept, SMESSHeader, SmessService } from "./smess.service";
2
+ import { BehaviorSubject } from "rxjs";
3
+ import { tap } from "rxjs/operators";
2
4
  export class AuthProvider {
3
5
  constructor(config, target, $authToken) {
4
6
  this.config = config;
@@ -6,39 +8,41 @@ export class AuthProvider {
6
8
  this.$authToken = $authToken;
7
9
  }
8
10
  get baseURL() {
9
- return this.config.version ? `${this.config.baseUrl}/${this.config.version}` : this.config.baseUrl;
11
+ return this.config.version
12
+ ? `${this.config.baseUrl}/${this.config.version}`
13
+ : this.config.baseUrl;
10
14
  }
11
15
  get path() {
12
16
  switch (this.target) {
13
- case 'login':
14
- return '/authentication/login_check';
15
- case 'password-forgot':
16
- return '/authentication/forgot-password';
17
- case 'reset-password':
18
- return '/authentication/reset-password';
19
- case 'verify-reset-password-token':
20
- return '/authentication/verify-reset-password-token';
21
- case 'logout':
22
- return '/authentication/logout';
23
- case 'change-password':
24
- return '/authentication/change-password';
17
+ case "login":
18
+ return "/authentication/login_check";
19
+ case "password-forgot":
20
+ return "/authentication/forgot-password";
21
+ case "reset-password":
22
+ return "/authentication/reset-password";
23
+ case "verify-reset-password-token":
24
+ return "/authentication/verify-reset-password-token";
25
+ case "logout":
26
+ return "/authentication/logout";
27
+ case "change-password":
28
+ return "/authentication/change-password";
25
29
  default:
26
- return '/authentication';
30
+ return "/authentication";
27
31
  }
28
32
  }
29
33
  get method() {
30
34
  switch (this.target) {
31
35
  default:
32
- return 'POST';
36
+ return "POST";
33
37
  }
34
38
  }
35
39
  get headers() {
36
40
  let authHeaders = {};
37
41
  switch (this.target) {
38
- case 'login':
39
- case 'password-forgot':
40
- case 'reset-password':
41
- case 'verify-reset-password-token':
42
+ case "login":
43
+ case "password-forgot":
44
+ case "reset-password":
45
+ case "verify-reset-password-token":
42
46
  authHeaders = SmessService.getHeaders(Accept.V1);
43
47
  break;
44
48
  default:
@@ -62,30 +66,48 @@ export class AuthProvider {
62
66
  }
63
67
  }
64
68
  export class AuthService {
65
- constructor(config, $authToken) {
69
+ constructor(config) {
66
70
  this.config = config;
67
- this.$authToken = $authToken;
71
+ this.$authToken = new BehaviorSubject(null);
72
+ }
73
+ // Get current auth token value
74
+ get currentAuthToken() {
75
+ return this.$authToken.value;
68
76
  }
69
77
  provider(target) {
70
78
  const targetWrapper = new AuthProvider(this.config, target, this.$authToken);
71
79
  return new SmessService(targetWrapper);
72
80
  }
73
81
  login(payload) {
74
- return this.provider('login').request(payload);
82
+ return this.provider("login")
83
+ .request(payload)
84
+ .pipe(tap((result) => {
85
+ if (result.hasSuccess && result.response?.token) {
86
+ // Set the auth token when login is successful
87
+ this.$authToken.next(String(result.response.token));
88
+ }
89
+ }));
75
90
  }
76
91
  logout() {
77
- return this.provider('logout').request();
92
+ return this.provider("logout")
93
+ .request()
94
+ .pipe(tap((result) => {
95
+ if (result.hasSuccess) {
96
+ // Clear the auth token when logout is successful
97
+ this.$authToken.next(null);
98
+ }
99
+ }));
78
100
  }
79
101
  forgotPassword(payload) {
80
- return this.provider('password-forgot').request(payload);
102
+ return this.provider("password-forgot").request(payload);
81
103
  }
82
104
  changePassword(payload) {
83
- return this.provider('change-password').request(payload);
105
+ return this.provider("change-password").request(payload);
84
106
  }
85
107
  resetPassword(payload) {
86
- return this.provider('reset-password').request(payload);
108
+ return this.provider("reset-password").request(payload);
87
109
  }
88
110
  verifyResetPasswordToken(token) {
89
- return this.provider('verify-reset-password-token').request({ token });
111
+ return this.provider("verify-reset-password-token").request({ token });
90
112
  }
91
113
  }
@@ -1,125 +1,141 @@
1
- import { AuthService } from './auth.service';
2
- import { NetworkingUIEventWrapped, AlertModel } from '../types/types';
3
- import { of, BehaviorSubject } from 'rxjs';
4
- describe('AuthService', () => {
1
+ import { AuthService, } from "./auth.service";
2
+ import { NetworkingUIEventWrapped, AlertModel, } from "../types/types";
3
+ import { of } from "rxjs";
4
+ describe("AuthService", () => {
5
5
  const config = {
6
- baseUrl: 'https://api.example.com',
6
+ baseUrl: "https://api.example.com",
7
7
  isProd: false,
8
- clientId: 'test-client-id',
9
- apiKey: 'test-api-key',
8
+ clientId: "test-client-id",
9
+ apiKey: "test-api-key",
10
10
  };
11
11
  let service;
12
- let $authToken;
13
12
  beforeEach(() => {
14
- $authToken = new BehaviorSubject(null);
15
- service = new AuthService(config, $authToken);
13
+ service = new AuthService(config);
16
14
  });
17
- it('login success', async () => {
18
- const payload = { identifier: 'user', password: 'pass' };
15
+ it("login success", async () => {
16
+ const payload = { identifier: "user", password: "pass" };
19
17
  const response = {
20
- token_type: 'Bearer',
18
+ token_type: "Bearer",
21
19
  expires_in: 3600,
22
- token: 'token',
23
- refresh_token: 'refresh',
20
+ token: "token",
21
+ refresh_token: "refresh",
24
22
  };
25
- jest.spyOn(service, 'provider').mockReturnValue({
23
+ jest.spyOn(service, "provider").mockReturnValue({
26
24
  request: () => of(NetworkingUIEventWrapped.succeeded(response)),
27
25
  });
28
26
  const result = await service.login(payload).toPromise();
29
27
  expect(result?.hasSuccess).toBe(true);
30
28
  expect(result?.response).toEqual(response);
29
+ // Verify that auth token is set after successful login
30
+ expect(service.currentAuthToken).toBe("token");
31
+ expect(service.$authToken.value).toBe("token");
31
32
  });
32
- it('login error', async () => {
33
- const payload = { identifier: 'user', password: 'wrong' };
34
- jest.spyOn(service, 'provider').mockReturnValue({
33
+ it("login error", async () => {
34
+ const payload = { identifier: "user", password: "wrong" };
35
+ jest.spyOn(service, "provider").mockReturnValue({
35
36
  request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
36
37
  });
37
38
  const result = await service.login(payload).toPromise();
38
39
  expect(result?.hasFailed).toBe(true);
39
40
  expect(result?.alertModel).toBeInstanceOf(AlertModel);
40
41
  });
41
- it('logout success', async () => {
42
- jest.spyOn(service, 'provider').mockReturnValue({
42
+ it("logout success", async () => {
43
+ // First set a token to test clearing it
44
+ service.$authToken.next("test-token");
45
+ expect(service.currentAuthToken).toBe("test-token");
46
+ jest.spyOn(service, "provider").mockReturnValue({
43
47
  request: () => of(NetworkingUIEventWrapped.succeeded(undefined)),
44
48
  });
45
49
  const result = await service.logout().toPromise();
46
50
  expect(result?.hasSuccess).toBe(true);
51
+ // Verify that auth token is cleared after successful logout
52
+ expect(service.currentAuthToken).toBe(null);
53
+ expect(service.$authToken.value).toBe(null);
47
54
  });
48
- it('forgotPassword success', async () => {
49
- const payload = { identifier: 'user' };
50
- const response = { data: 'ok' };
51
- jest.spyOn(service, 'provider').mockReturnValue({
55
+ it("forgotPassword success", async () => {
56
+ const payload = { identifier: "user" };
57
+ const response = { data: "ok" };
58
+ jest.spyOn(service, "provider").mockReturnValue({
52
59
  request: () => of(NetworkingUIEventWrapped.succeeded(response)),
53
60
  });
54
61
  const result = await service.forgotPassword(payload).toPromise();
55
62
  expect(result?.hasSuccess).toBe(true);
56
63
  expect(result?.response).toEqual(response);
57
64
  });
58
- it('changePassword success', async () => {
59
- const payload = { old_password: 'old', password: 'new' };
60
- const response = { data: 'changed' };
61
- jest.spyOn(service, 'provider').mockReturnValue({
65
+ it("changePassword success", async () => {
66
+ const payload = {
67
+ old_password: "old",
68
+ password: "new",
69
+ };
70
+ const response = { data: "changed" };
71
+ jest.spyOn(service, "provider").mockReturnValue({
62
72
  request: () => of(NetworkingUIEventWrapped.succeeded(response)),
63
73
  });
64
74
  const result = await service.changePassword(payload).toPromise();
65
75
  expect(result?.hasSuccess).toBe(true);
66
76
  expect(result?.response).toEqual(response);
67
77
  });
68
- it('resetPassword success', async () => {
69
- const payload = { token: 'token', password: 'newpass' };
70
- const response = { data: 'reset' };
71
- jest.spyOn(service, 'provider').mockReturnValue({
78
+ it("resetPassword success", async () => {
79
+ const payload = {
80
+ token: "token",
81
+ password: "newpass",
82
+ };
83
+ const response = { data: "reset" };
84
+ jest.spyOn(service, "provider").mockReturnValue({
72
85
  request: () => of(NetworkingUIEventWrapped.succeeded(response)),
73
86
  });
74
87
  const result = await service.resetPassword(payload).toPromise();
75
88
  expect(result?.hasSuccess).toBe(true);
76
89
  expect(result?.response).toEqual(response);
77
90
  });
78
- it('verifyResetPasswordToken success', async () => {
79
- const token = 'token';
91
+ it("verifyResetPasswordToken success", async () => {
92
+ const token = "token";
80
93
  const response = {
81
- token_type: 'Bearer',
94
+ token_type: "Bearer",
82
95
  expires_in: 3600,
83
- token: 'token',
84
- refresh_token: 'refresh',
96
+ token: "token",
97
+ refresh_token: "refresh",
85
98
  };
86
- jest.spyOn(service, 'provider').mockReturnValue({
99
+ jest.spyOn(service, "provider").mockReturnValue({
87
100
  request: () => of(NetworkingUIEventWrapped.succeeded(response)),
88
101
  });
89
102
  const result = await service.verifyResetPasswordToken(token).toPromise();
90
103
  expect(result?.hasSuccess).toBe(true);
91
104
  expect(result?.response).toEqual(response);
92
105
  });
93
- it('forgotPassword error', async () => {
94
- const payload = { identifier: 'user' };
95
- jest.spyOn(service, 'provider').mockReturnValue({
106
+ it("forgotPassword error", async () => {
107
+ const payload = { identifier: "user" };
108
+ jest.spyOn(service, "provider").mockReturnValue({
96
109
  request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
97
110
  });
98
111
  const result = await service.forgotPassword(payload).toPromise();
99
112
  expect(result?.hasFailed).toBe(true);
100
113
  expect(result?.alertModel).toBeInstanceOf(AlertModel);
101
114
  });
102
- it('changePassword error', async () => {
103
- const payload = { old_password: 'old', password: 'bad' };
104
- jest.spyOn(service, 'provider').mockReturnValue({
115
+ it("changePassword error", async () => {
116
+ const payload = {
117
+ old_password: "old",
118
+ password: "bad",
119
+ };
120
+ jest.spyOn(service, "provider").mockReturnValue({
105
121
  request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
106
122
  });
107
123
  const result = await service.changePassword(payload).toPromise();
108
124
  expect(result?.hasFailed).toBe(true);
109
125
  expect(result?.alertModel).toBeInstanceOf(AlertModel);
110
126
  });
111
- it('resetPassword error', async () => {
112
- const payload = { token: 'bad', password: 'bad' };
113
- jest.spyOn(service, 'provider').mockReturnValue({
127
+ it("resetPassword error", async () => {
128
+ const payload = { token: "bad", password: "bad" };
129
+ jest.spyOn(service, "provider").mockReturnValue({
114
130
  request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
115
131
  });
116
132
  const result = await service.resetPassword(payload).toPromise();
117
133
  expect(result?.hasFailed).toBe(true);
118
134
  expect(result?.alertModel).toBeInstanceOf(AlertModel);
119
135
  });
120
- it('verifyResetPasswordToken error', async () => {
121
- const token = 'bad';
122
- jest.spyOn(service, 'provider').mockReturnValue({
136
+ it("verifyResetPasswordToken error", async () => {
137
+ const token = "bad";
138
+ jest.spyOn(service, "provider").mockReturnValue({
123
139
  request: () => of(NetworkingUIEventWrapped.failed(AlertModel.default())),
124
140
  });
125
141
  const result = await service.verifyResetPasswordToken(token).toPromise();
@@ -1,4 +1,4 @@
1
- import { Dexie, Table } from '../utils/cache-import';
1
+ import { Dexie, Table } from "../utils/cache-import";
2
2
  export interface CacheMetadata {
3
3
  key: string;
4
4
  cachedAt: number;
@@ -1,10 +1,10 @@
1
- import { Dexie } from '../utils/cache-import';
1
+ import { Dexie } from "../utils/cache-import";
2
2
  export class GenericDB extends Dexie {
3
3
  constructor(name, dataStoreSchema) {
4
4
  super(name);
5
5
  this.version(1).stores({
6
6
  data: dataStoreSchema,
7
- cache: 'key, cachedAt, expiresAt'
7
+ cache: "key, cachedAt, expiresAt",
8
8
  });
9
9
  }
10
10
  }
@@ -17,14 +17,14 @@ export class GenericIndexedDBService {
17
17
  }
18
18
  async saveAll(items, cacheKey) {
19
19
  const cachedItems = items.map(this.toCached);
20
- await this.db.transaction('rw', this.db.data, this.db.cache, async () => {
20
+ await this.db.transaction("rw", this.db.data, this.db.cache, async () => {
21
21
  await this.db.data.clear();
22
22
  await this.db.data.bulkAdd(cachedItems);
23
23
  await this.db.cache.put({
24
24
  key: cacheKey,
25
25
  cachedAt: Date.now(),
26
26
  expiresAt: Date.now() + this.CACHE_DURATION,
27
- version: '1.0'
27
+ version: "1.0",
28
28
  });
29
29
  });
30
30
  }
@@ -47,7 +47,7 @@ export class GenericIndexedDBService {
47
47
  await this.db.data.delete(id);
48
48
  }
49
49
  async clearAll() {
50
- await this.db.transaction('rw', this.db.data, this.db.cache, async () => {
50
+ await this.db.transaction("rw", this.db.data, this.db.cache, async () => {
51
51
  await this.db.data.clear();
52
52
  await this.db.cache.clear();
53
53
  });
@@ -57,7 +57,7 @@ export class GenericIndexedDBService {
57
57
  const cacheInfo = await this.db.cache.get(key);
58
58
  return {
59
59
  count,
60
- lastUpdated: cacheInfo ? new Date(cacheInfo.cachedAt) : undefined
60
+ lastUpdated: cacheInfo ? new Date(cacheInfo.cachedAt) : undefined,
61
61
  };
62
62
  }
63
63
  async setStats(key, stats) {
@@ -65,7 +65,7 @@ export class GenericIndexedDBService {
65
65
  key,
66
66
  cachedAt: Date.now(),
67
67
  expiresAt: Date.now() + this.CACHE_DURATION,
68
- version: JSON.stringify(stats)
68
+ version: JSON.stringify(stats),
69
69
  });
70
70
  }
71
71
  async getStats(key) {
@@ -1 +1 @@
1
- import 'fake-indexeddb/auto';
1
+ import "fake-indexeddb/auto";
@@ -1,87 +1,87 @@
1
- import 'fake-indexeddb/auto';
2
- import { GenericIndexedDBService } from './cache.service';
1
+ import "fake-indexeddb/auto";
2
+ import { GenericIndexedDBService } from "./cache.service";
3
3
  const toCached = (entity) => ({
4
4
  id: entity.id,
5
5
  name: entity.name,
6
6
  createdAt: entity.createdAt.toISOString(),
7
- cachedAt: Date.now()
7
+ cachedAt: Date.now(),
8
8
  });
9
9
  const fromCached = (cached) => ({
10
10
  id: cached.id,
11
11
  name: cached.name,
12
- createdAt: new Date(cached.createdAt)
12
+ createdAt: new Date(cached.createdAt),
13
13
  });
14
- describe('GenericIndexedDBService', () => {
14
+ describe("GenericIndexedDBService", () => {
15
15
  let service;
16
16
  beforeEach(() => {
17
- service = new GenericIndexedDBService('TestDB', 'id, name', toCached, fromCached);
17
+ service = new GenericIndexedDBService("TestDB", "id, name", toCached, fromCached);
18
18
  });
19
19
  afterEach(async () => {
20
20
  await service.db.delete();
21
21
  });
22
- it('should save and retrieve one item', async () => {
22
+ it("should save and retrieve one item", async () => {
23
23
  const item = {
24
- id: '1',
25
- name: 'Test Item',
26
- createdAt: new Date()
24
+ id: "1",
25
+ name: "Test Item",
26
+ createdAt: new Date(),
27
27
  };
28
28
  await service.saveOne(item);
29
- const result = await service.getOne('1');
29
+ const result = await service.getOne("1");
30
30
  expect(result).not.toBeNull();
31
- expect(result?.id).toBe('1');
31
+ expect(result?.id).toBe("1");
32
32
  });
33
- it('should save and retrieve all items', async () => {
33
+ it("should save and retrieve all items", async () => {
34
34
  const now = new Date();
35
35
  const items = [
36
- { id: '1', name: 'One', createdAt: now },
37
- { id: '2', name: 'Two', createdAt: now }
36
+ { id: "1", name: "One", createdAt: now },
37
+ { id: "2", name: "Two", createdAt: now },
38
38
  ];
39
- await service.saveAll(items, 'all');
40
- const results = await service.getAll('all');
39
+ await service.saveAll(items, "all");
40
+ const results = await service.getAll("all");
41
41
  expect(results).not.toBeNull();
42
42
  expect(results.length).toBe(2);
43
43
  });
44
- it('should return null when cache is expired', async () => {
44
+ it("should return null when cache is expired", async () => {
45
45
  const cacheTable = service.db.cache;
46
46
  await cacheTable.put({
47
- key: 'expired',
47
+ key: "expired",
48
48
  cachedAt: Date.now() - 10000,
49
49
  expiresAt: Date.now() - 5000,
50
- version: '1.0'
50
+ version: "1.0",
51
51
  });
52
- const result = await service.getAll('expired');
52
+ const result = await service.getAll("expired");
53
53
  expect(result).toBeNull();
54
54
  });
55
- it('should delete one item', async () => {
55
+ it("should delete one item", async () => {
56
56
  const item = {
57
- id: '1',
58
- name: 'Delete Me',
59
- createdAt: new Date()
57
+ id: "1",
58
+ name: "Delete Me",
59
+ createdAt: new Date(),
60
60
  };
61
61
  await service.saveOne(item);
62
- await service.delete('1');
63
- const result = await service.getOne('1');
62
+ await service.delete("1");
63
+ const result = await service.getOne("1");
64
64
  expect(result).toBeNull();
65
65
  });
66
- it('should set and retrieve stats', async () => {
66
+ it("should set and retrieve stats", async () => {
67
67
  const stats = { total: 99 };
68
- await service.setStats('mystats', stats);
69
- const result = await service.getStats('mystats');
68
+ await service.setStats("mystats", stats);
69
+ const result = await service.getStats("mystats");
70
70
  expect(result).toEqual(stats);
71
71
  });
72
- it('should get cache info', async () => {
72
+ it("should get cache info", async () => {
73
73
  await service.saveOne({
74
- id: '123',
75
- name: 'Info Item',
76
- createdAt: new Date()
74
+ id: "123",
75
+ name: "Info Item",
76
+ createdAt: new Date(),
77
77
  });
78
78
  await service.db.cache.put({
79
- key: 'info',
79
+ key: "info",
80
80
  cachedAt: Date.now(),
81
81
  expiresAt: Date.now() + 10000,
82
- version: '1.0'
82
+ version: "1.0",
83
83
  });
84
- const info = await service.getCacheInfo('info');
84
+ const info = await service.getCacheInfo("info");
85
85
  expect(info.count).toBeGreaterThanOrEqual(1);
86
86
  expect(info.lastUpdated).toBeInstanceOf(Date);
87
87
  });
@@ -1,7 +1,7 @@
1
- import { ProviderType, NetworkingConfig, NetworkingUIEventWrapped, HttpResponse } from '../types/types';
2
- import { SmessService } from './smess.service';
3
- import { BehaviorSubject, Observable } from 'rxjs';
4
- export type CustomerTarget = 'register' | 'get-profile' | 'update-profile';
1
+ import { ProviderType, NetworkingConfig, NetworkingUIEventWrapped, HttpResponse } from "../types/types";
2
+ import { SmessService } from "./smess.service";
3
+ import { BehaviorSubject, Observable } from "rxjs";
4
+ export type CustomerTarget = "register" | "get-profile" | "update-profile";
5
5
  export interface CustomerRegisterRequest {
6
6
  client_id?: string;
7
7
  email: string;
@@ -1,4 +1,4 @@
1
- import { Accept, SMESSHeader, SmessService } from './smess.service';
1
+ import { Accept, SMESSHeader, SmessService } from "./smess.service";
2
2
  export class CustomerProvider {
3
3
  constructor(config, target, $authToken) {
4
4
  this.config = config;
@@ -6,28 +6,30 @@ export class CustomerProvider {
6
6
  this.$authToken = $authToken;
7
7
  }
8
8
  get baseURL() {
9
- return this.config.version ? `${this.config.baseUrl}/${this.config.version}` : this.config.baseUrl;
9
+ return this.config.version
10
+ ? `${this.config.baseUrl}/${this.config.version}`
11
+ : this.config.baseUrl;
10
12
  }
11
13
  get path() {
12
14
  switch (this.target) {
13
- case 'register':
14
- return '/authentication/customer/register';
15
- case 'get-profile':
16
- return '/authentication/customer/get-profile';
17
- case 'update-profile':
18
- return '/authentication/customer/update';
15
+ case "register":
16
+ return "/authentication/customer/register";
17
+ case "get-profile":
18
+ return "/authentication/customer/get-profile";
19
+ case "update-profile":
20
+ return "/authentication/customer/update";
19
21
  default:
20
- return '/authentication/customer';
22
+ return "/authentication/customer";
21
23
  }
22
24
  }
23
25
  get method() {
24
26
  switch (this.target) {
25
- case 'get-profile':
26
- return 'GET';
27
- case 'update-profile':
28
- return 'PUT';
27
+ case "get-profile":
28
+ return "GET";
29
+ case "update-profile":
30
+ return "PUT";
29
31
  default:
30
- return 'POST';
32
+ return "POST";
31
33
  }
32
34
  }
33
35
  get headers() {
@@ -59,12 +61,12 @@ export class CustomerService {
59
61
  return new SmessService(targetWrapper);
60
62
  }
61
63
  register(payload) {
62
- return this.provider('register').request(payload);
64
+ return this.provider("register").request(payload);
63
65
  }
64
66
  getProfile() {
65
- return this.provider('get-profile').request();
67
+ return this.provider("get-profile").request();
66
68
  }
67
69
  updateProfile(payload) {
68
- return this.provider('update-profile').request(payload);
70
+ return this.provider("update-profile").request(payload);
69
71
  }
70
72
  }