@phystack/products 4.3.40-dev

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 (44) hide show
  1. package/CHANGELOG.md +2736 -0
  2. package/dist/api.d.ts +11 -0
  3. package/dist/api.js +49 -0
  4. package/dist/helpers.d.ts +2 -0
  5. package/dist/helpers.js +11 -0
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.js +29 -0
  8. package/dist/index.test.d.ts +1 -0
  9. package/dist/index.test.js +1423 -0
  10. package/dist/services/grid-product-service-admin.d.ts +23 -0
  11. package/dist/services/grid-product-service-admin.js +120 -0
  12. package/dist/services/grid-product-service-client.d.ts +80 -0
  13. package/dist/services/grid-product-service-client.js +633 -0
  14. package/dist/services/grid-product-service-interface.d.ts +47 -0
  15. package/dist/services/grid-product-service-interface.js +2 -0
  16. package/dist/services/http-service.d.ts +14 -0
  17. package/dist/services/http-service.js +44 -0
  18. package/dist/types/grid-product.d.ts +458 -0
  19. package/dist/types/grid-product.js +38 -0
  20. package/dist/types/iso-currency-codes.d.ts +182 -0
  21. package/dist/types/iso-currency-codes.js +186 -0
  22. package/dist/types/iso-language-ids.d.ts +170 -0
  23. package/dist/types/iso-language-ids.js +174 -0
  24. package/dist/types/parameters.d.ts +242 -0
  25. package/dist/types/parameters.js +99 -0
  26. package/dist/utils.d.ts +27 -0
  27. package/dist/utils.js +187 -0
  28. package/jest.config.js +10 -0
  29. package/jest.setup.js +1 -0
  30. package/package.json +31 -0
  31. package/src/api.ts +47 -0
  32. package/src/helpers.ts +7 -0
  33. package/src/index.test.ts +1526 -0
  34. package/src/index.ts +8 -0
  35. package/src/services/grid-product-service-admin.ts +123 -0
  36. package/src/services/grid-product-service-client.ts +995 -0
  37. package/src/services/grid-product-service-interface.ts +105 -0
  38. package/src/services/http-service.ts +50 -0
  39. package/src/types/grid-product.ts +548 -0
  40. package/src/types/iso-currency-codes.ts +182 -0
  41. package/src/types/iso-language-ids.ts +170 -0
  42. package/src/types/parameters.ts +231 -0
  43. package/src/utils.ts +325 -0
  44. package/tsconfig.json +20 -0
package/src/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ export { default as GridProductServiceAdmin } from './services/grid-product-service-admin';
2
+ export { default as GridProductServiceClient } from './services/grid-product-service-client';
3
+
4
+ export * from './types/parameters';
5
+ export * from './types/grid-product';
6
+ export * from './types/iso-language-ids';
7
+ export * from './types/iso-currency-codes';
8
+ export * from './utils';
@@ -0,0 +1,123 @@
1
+ import HttpService from './http-service';
2
+ import {
3
+ DataResidencyEnum,
4
+ GridProduct,
5
+ GridProductPushPayload,
6
+ ProductType,
7
+ UpdateVariantsParams,
8
+ } from '../types/grid-product';
9
+ import { setApiEndpoint } from '../api';
10
+ import GridProductServiceClient from './grid-product-service-client';
11
+ import { IsoLanguageIds } from '../types/iso-language-ids';
12
+
13
+
14
+ type Options = {
15
+ tenantId: string;
16
+ environment: string;
17
+ dataResidency: DataResidencyEnum;
18
+ accessToken?: string;
19
+ locale: IsoLanguageIds;
20
+ };
21
+
22
+ export class GridProductServiceAdmin extends GridProductServiceClient {
23
+ readonly httpService: HttpService;
24
+
25
+ constructor({ tenantId, accessToken, environment, dataResidency, locale }: Options) {
26
+ super({ tenantId, environment, dataResidency, locale });
27
+
28
+ if (!tenantId) {
29
+ throw new Error('Error: tenantId is required');
30
+ }
31
+
32
+ if (!environment) {
33
+ throw new Error('Error: environment is required');
34
+ }
35
+
36
+ const apiEndpoint: string = setApiEndpoint(dataResidency);
37
+
38
+ this.httpService = new HttpService({
39
+ baseUrl: `${apiEndpoint}/tenants/${tenantId}/${environment}`,
40
+ accessToken,
41
+ });
42
+
43
+ this.locale = locale;
44
+ }
45
+
46
+ updateProductFields = async (data: Array<Partial<GridProduct>>): Promise<any> => {
47
+ try {
48
+ const result = await this.httpService.patch('/products', { data });
49
+ return result.data;
50
+ } catch (err) {
51
+ // @ts-ignore
52
+ throw new Error(err.response.data.message ?? err.message);
53
+ }
54
+ };
55
+
56
+ pushProducts = async (data: Array<GridProductPushPayload>): Promise<any> => {
57
+ try {
58
+ const result = await this.httpService.post('/products-push', { data });
59
+ return result.data;
60
+ } catch (err) {
61
+ // @ts-ignore
62
+ throw new Error(err.response.data.message ?? err.message);
63
+ }
64
+ };
65
+
66
+ removeProducts = async (data: Array<string>): Promise<any> => {
67
+ try {
68
+ const result = await this.httpService.delete('/products', {
69
+ data: { data },
70
+ });
71
+ return result.data;
72
+ } catch (err) {
73
+ // @ts-ignore
74
+ throw new Error(err.response.data.message ?? err.message);
75
+ }
76
+ };
77
+
78
+ removeSpaceProducts = async (spaceId: string, data: Array<string>): Promise<any> => {
79
+ try {
80
+ const result = await this.httpService.delete(`/spaces/${spaceId}/products`, {
81
+ data: { data },
82
+ });
83
+ return result.data;
84
+ } catch (err) {
85
+ // @ts-ignore
86
+ throw new Error(err.response.data.message ?? err.message);
87
+ }
88
+ };
89
+
90
+ pushProductTypes = async (data: Array<ProductType>) => {
91
+ try {
92
+ const result = await this.httpService.post('/product-types', { data });
93
+ return result.data;
94
+ } catch (err) {
95
+ // @ts-ignore
96
+ throw new Error(err.response.data.message ?? err.message);
97
+ }
98
+ };
99
+
100
+ removeProductTypes = async (data: Array<string>): Promise<any> => {
101
+ try {
102
+ const result = await this.httpService.delete('/product-types', {
103
+ data: { data },
104
+ });
105
+ return result.data;
106
+ } catch (err) {
107
+ // @ts-ignore
108
+ throw new Error(err.response.data.message ?? err.message);
109
+ }
110
+ };
111
+
112
+ updateVariants = async (params: UpdateVariantsParams): Promise<any> => {
113
+ try {
114
+ const result = await this.httpService.patch(`/variants`, params);
115
+ return result.data;
116
+ } catch (err) {
117
+ // @ts-ignore
118
+ throw new Error(err.response.data.message ?? err.message);
119
+ }
120
+ };
121
+ }
122
+
123
+ export default GridProductServiceAdmin;