@longvansoftware/service-js-client 2.2.7 → 2.2.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.
@@ -7,3 +7,4 @@ export declare const GET_ORDER_BY_SERVICE_ID: DocumentNode;
7
7
  export declare const FIND_ORDER_BY_OWNER_PARTYID: DocumentNode;
8
8
  export declare const CALC_EXCHANGE_PRICE_EXTEND_RESOURCE_DETAIL_DYNAMIC: (fields?: string[]) => DocumentNode;
9
9
  export declare const SEARCH_ORDER_DYNAMIC: (fields?: string[]) => DocumentNode;
10
+ export declare const CALCULATE_RESOURCE_CHANGE_PRICE: (fields?: string[]) => DocumentNode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SEARCH_ORDER_DYNAMIC = exports.CALC_EXCHANGE_PRICE_EXTEND_RESOURCE_DETAIL_DYNAMIC = exports.FIND_ORDER_BY_OWNER_PARTYID = exports.GET_ORDER_BY_SERVICE_ID = exports.GET_ORDER_LINE_ITEM_BY_SERVICE_ID = exports.GET_QUANTITY_ORDER_LINEITEMS = exports.GET_ORDER_DETAIL_DYNAMIC = exports.GET_ORDER_DETAIL = void 0;
3
+ exports.CALCULATE_RESOURCE_CHANGE_PRICE = exports.SEARCH_ORDER_DYNAMIC = exports.CALC_EXCHANGE_PRICE_EXTEND_RESOURCE_DETAIL_DYNAMIC = exports.FIND_ORDER_BY_OWNER_PARTYID = exports.GET_ORDER_BY_SERVICE_ID = exports.GET_ORDER_LINE_ITEM_BY_SERVICE_ID = exports.GET_QUANTITY_ORDER_LINEITEMS = exports.GET_ORDER_DETAIL_DYNAMIC = exports.GET_ORDER_DETAIL = void 0;
4
4
  const graphql_tag_1 = require("graphql-tag");
5
5
  exports.GET_ORDER_DETAIL = (0, graphql_tag_1.gql) `
6
6
  query getOrderDetail($orderId: String!) {
@@ -468,3 +468,13 @@ const SEARCH_ORDER_DYNAMIC = (fields = []) => {
468
468
  `;
469
469
  };
470
470
  exports.SEARCH_ORDER_DYNAMIC = SEARCH_ORDER_DYNAMIC;
471
+ const CALCULATE_RESOURCE_CHANGE_PRICE = (fields = []) => {
472
+ const fieldStr = fields.join("\n ");
473
+ const hasFields = fields.length > 0;
474
+ return (0, graphql_tag_1.gql) `
475
+ query calculateResourceChangePrice($partnerId: String! $storeId: String! $productIds: [String] $quantity: BigDecimal! $unit: String!) {
476
+ calculateResourceChangePrice(partnerId: $partnerId storeId: $storeId productIds: $productIds quantity: $quantity unit: $unit) ${hasFields ? `{ ${fieldStr} }` : ""}
477
+ }
478
+ `;
479
+ };
480
+ exports.CALCULATE_RESOURCE_CHANGE_PRICE = CALCULATE_RESOURCE_CHANGE_PRICE;
@@ -1,7 +1,6 @@
1
1
  import { DocumentNode } from "graphql";
2
2
  export declare const GET_PRODUCT_BY_ID_QUERY: DocumentNode;
3
3
  export declare const GET_PRODUCT_BY_ID_QUERY_DYNAMIC: (fields?: string[]) => DocumentNode;
4
- export declare const GET_SIMPLE_PRODUCT_BY_ID_QUERY_DYNAMIC: (fields?: string[]) => DocumentNode;
5
4
  export declare const GET_PRODUCT_BY_SLUG_QUERY: DocumentNode;
6
5
  export declare const GET_SIMPLE_PRODUCTS_QUERY: DocumentNode;
7
6
  export declare const GET_CATEGORIES_QUERY: DocumentNode;
@@ -28,3 +27,4 @@ export declare const GET_CATEGORIES: DocumentNode;
28
27
  export declare const GET_PRICE_MENUS: DocumentNode;
29
28
  export declare const GET_SIMPLE_PRODUCTS_DYNAMIC: (fields?: string[]) => DocumentNode;
30
29
  export declare const GET_PRODUCT_RELATED_TO_ARTICLE: (fields?: string[]) => DocumentNode;
30
+ export declare const GET_PRODUCTS_FEATURE_TYPE_DYNAMIC: (fields?: string[]) => DocumentNode;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GET_PRODUCT_RELATED_TO_ARTICLE = exports.GET_SIMPLE_PRODUCTS_DYNAMIC = exports.GET_PRICE_MENUS = exports.GET_CATEGORIES = exports.GET_LIST_PRODUCTS_CONFIG_DYNAMIC = exports.GET_TAGS_BY_CATEGORY = exports.GET_TAGS = exports.GET_LIST_PRICE = exports.GET_DETAIL_STORES = exports.GET_RELATED_INFOR = exports.GET_PRODUCT_VARIANT_BY_ID_QUERY_DYNAMIC = exports.GET_PRODUCT_VARIANT_BY_ID = exports.GET_RESOURCE_BY_PRODUCT = exports.GET_HANDLE_BY_SERVICETYPE = exports.GET_PRODUCTS_DYNAMIC = exports.GET_PRODUCTS = exports.GET_POLICY = exports.GET_PRODUCT_OPTION = exports.GET_BRAND_DETAIL_QUERY = exports.GET_BRANDS_BY_CATEGORY_QUERY = exports.GET_BRANDS_QUERY = exports.GET_CATEGORY_BY_ID_QUERY = exports.GET_CATEGORY_BY_HANDLE_QUERY = exports.GET_CATEGORIES_QUERY = exports.GET_SIMPLE_PRODUCTS_QUERY = exports.GET_PRODUCT_BY_SLUG_QUERY = exports.GET_SIMPLE_PRODUCT_BY_ID_QUERY_DYNAMIC = exports.GET_PRODUCT_BY_ID_QUERY_DYNAMIC = exports.GET_PRODUCT_BY_ID_QUERY = void 0;
3
+ exports.GET_PRODUCTS_FEATURE_TYPE_DYNAMIC = exports.GET_PRODUCT_RELATED_TO_ARTICLE = exports.GET_SIMPLE_PRODUCTS_DYNAMIC = exports.GET_PRICE_MENUS = exports.GET_CATEGORIES = exports.GET_LIST_PRODUCTS_CONFIG_DYNAMIC = exports.GET_TAGS_BY_CATEGORY = exports.GET_TAGS = exports.GET_LIST_PRICE = exports.GET_DETAIL_STORES = exports.GET_RELATED_INFOR = exports.GET_PRODUCT_VARIANT_BY_ID_QUERY_DYNAMIC = exports.GET_PRODUCT_VARIANT_BY_ID = exports.GET_RESOURCE_BY_PRODUCT = exports.GET_HANDLE_BY_SERVICETYPE = exports.GET_PRODUCTS_DYNAMIC = exports.GET_PRODUCTS = exports.GET_POLICY = exports.GET_PRODUCT_OPTION = exports.GET_BRAND_DETAIL_QUERY = exports.GET_BRANDS_BY_CATEGORY_QUERY = exports.GET_BRANDS_QUERY = exports.GET_CATEGORY_BY_ID_QUERY = exports.GET_CATEGORY_BY_HANDLE_QUERY = exports.GET_CATEGORIES_QUERY = exports.GET_SIMPLE_PRODUCTS_QUERY = exports.GET_PRODUCT_BY_SLUG_QUERY = exports.GET_PRODUCT_BY_ID_QUERY_DYNAMIC = exports.GET_PRODUCT_BY_ID_QUERY = void 0;
4
4
  const graphql_tag_1 = require("graphql-tag");
5
5
  // export const GET_PRODUCT_BY_ID_QUERY = gql`
6
6
  // query GetProductById(
@@ -210,24 +210,6 @@ const GET_PRODUCT_BY_ID_QUERY_DYNAMIC = (fields = []) => {
210
210
  `;
211
211
  };
212
212
  exports.GET_PRODUCT_BY_ID_QUERY_DYNAMIC = GET_PRODUCT_BY_ID_QUERY_DYNAMIC;
213
- const GET_SIMPLE_PRODUCT_BY_ID_QUERY_DYNAMIC = (fields = []) => {
214
- const fieldStr = fields.join("\n ");
215
- const hasFields = fields.length > 0;
216
- return (0, graphql_tag_1.gql) `
217
- query GetSimpleProductById(
218
- $partnerId: String!
219
- $storeChannel: String!
220
- $productId: String!
221
- ) {
222
- getSimpleProductById(
223
- partnerId: $partnerId
224
- storeChannel: $storeChannel
225
- productId: $productId
226
- ) ${hasFields ? `{ ${fieldStr} }` : ""}
227
- }
228
- `;
229
- };
230
- exports.GET_SIMPLE_PRODUCT_BY_ID_QUERY_DYNAMIC = GET_SIMPLE_PRODUCT_BY_ID_QUERY_DYNAMIC;
231
213
  exports.GET_PRODUCT_BY_SLUG_QUERY = (0, graphql_tag_1.gql) `
232
214
  query GetProductByHandle(
233
215
  $partnerId: String!
@@ -1133,9 +1115,10 @@ const GET_SIMPLE_PRODUCTS_DYNAMIC = (fields = []) => {
1133
1115
  const fieldStr = fields.join("\n ");
1134
1116
  const hasFields = fields.length > 0;
1135
1117
  return (0, graphql_tag_1.gql) `
1136
- query GetSimpleProducts(
1118
+ query getSimpleProducts(
1137
1119
  $partnerId: String!
1138
1120
  $storeChannel: String!
1121
+ $hash: String
1139
1122
  $category: String
1140
1123
  $product: String
1141
1124
  $sku: String
@@ -1160,6 +1143,7 @@ const GET_SIMPLE_PRODUCTS_DYNAMIC = (fields = []) => {
1160
1143
  getSimpleProducts(
1161
1144
  partnerId: $partnerId
1162
1145
  storeChannel: $storeChannel
1146
+ hash: $hash
1163
1147
  category: $category
1164
1148
  product: $product
1165
1149
  sku: $sku
@@ -1213,3 +1197,23 @@ const GET_PRODUCT_RELATED_TO_ARTICLE = (fields = []) => {
1213
1197
  `;
1214
1198
  };
1215
1199
  exports.GET_PRODUCT_RELATED_TO_ARTICLE = GET_PRODUCT_RELATED_TO_ARTICLE;
1200
+ const GET_PRODUCTS_FEATURE_TYPE_DYNAMIC = (fields = []) => {
1201
+ const fieldStr = fields.join("\n ");
1202
+ const hasFields = fields.length > 0;
1203
+ return (0, graphql_tag_1.gql) `
1204
+ query getProductFeatureTypes(
1205
+ $partnerId: String!
1206
+ $storeChannel: String!
1207
+ $productId: String!
1208
+ ) {
1209
+ getProductFeatureTypes(
1210
+ partnerId: $partnerId
1211
+ storeChannel: $storeChannel
1212
+ productId: $productId
1213
+ ) {
1214
+ ${hasFields ? `${fieldStr}` : ""}
1215
+ }
1216
+ }
1217
+ `;
1218
+ };
1219
+ exports.GET_PRODUCTS_FEATURE_TYPE_DYNAMIC = GET_PRODUCTS_FEATURE_TYPE_DYNAMIC;
@@ -18,4 +18,5 @@ export declare class OrderGraphQLService extends Service {
18
18
  addItemIntoOrderByProductJsonResource(serviceId: string, orderId: string, itemInput: any, durationQuantity: number, durationUnit: string, actorId: string, fields: string[]): Promise<any>;
19
19
  updateOrderLineItemParentId(orderLineItemChildIds: string[], orderLineItemParentId: string, updateBy: string): Promise<any>;
20
20
  updateProductOptionOrderLineItem(orderLineItemId: string, productOptionUpdate: any, updateBy: string): Promise<any>;
21
+ calculateResourceChangePrice(productIds: string[], quantity: string, unit: string, storeId: string, fields: string[]): Promise<any>;
21
22
  }
@@ -285,5 +285,25 @@ class OrderGraphQLService extends serviceSDK_1.Service {
285
285
  }
286
286
  });
287
287
  }
288
+ calculateResourceChangePrice(productIds, quantity, unit, storeId, fields) {
289
+ return __awaiter(this, void 0, void 0, function* () {
290
+ const query = (0, queries_1.SEARCH_ORDER_DYNAMIC)(fields);
291
+ const variables = {
292
+ partnerId: this.orgId,
293
+ storeId: storeId ? storeId : this.storeId,
294
+ productIds,
295
+ quantity,
296
+ unit
297
+ };
298
+ try {
299
+ const response = yield this.graphqlQueryV2(query, variables);
300
+ return response.calculateResourceChangePrice;
301
+ }
302
+ catch (error) {
303
+ console.log(`Error in calculateResourceChangePrice: ${error}`);
304
+ throw error;
305
+ }
306
+ });
307
+ }
288
308
  }
289
309
  exports.OrderGraphQLService = OrderGraphQLService;
@@ -22,7 +22,6 @@ export declare class ProductService extends Service {
22
22
  */
23
23
  getProductById(productId: string, store: string): Promise<any>;
24
24
  getProductByIdDynamic(productId: string, store: string, fields: string[]): Promise<any>;
25
- getSimpleProductByIdDynamic(productId: string, store: string, fields: string[]): Promise<any>;
26
25
  /**
27
26
  * Retrieves a product by its slug.
28
27
  * @param slug - The slug of the product.
@@ -55,4 +54,5 @@ export declare class ProductService extends Service {
55
54
  getPriceMenus(categoryId: string, store: string): Promise<any>;
56
55
  getSimpleProductsDynamic(variables: any, storeId: string, fields: string[]): Promise<any>;
57
56
  getProductRelatedToArticle(articleId: string, storeId: string, fields: string[]): Promise<any>;
57
+ getProductFeatureTypesDynamic(productId: string, storeId: string, fields: string[]): Promise<any>;
58
58
  }
@@ -70,24 +70,6 @@ class ProductService extends serviceSDK_1.Service {
70
70
  }
71
71
  });
72
72
  }
73
- getSimpleProductByIdDynamic(productId, store, fields) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- const query = (0, queries_1.GET_SIMPLE_PRODUCT_BY_ID_QUERY_DYNAMIC)(fields);
76
- const variables = {
77
- partnerId: this.orgId,
78
- storeChannel: store ? store : this.storeId,
79
- productId,
80
- };
81
- try {
82
- const response = yield this.graphqlQuery(query, variables);
83
- return response.getSimpleProductById;
84
- }
85
- catch (error) {
86
- console.log(`Error fetching simple product by ID: ${error}`);
87
- throw error;
88
- }
89
- });
90
- }
91
73
  /**
92
74
  * Retrieves a product by its slug.
93
75
  * @param slug - The slug of the product.
@@ -184,9 +166,7 @@ class ProductService extends serviceSDK_1.Service {
184
166
  getProductsDynamic(param, store, fields) {
185
167
  return __awaiter(this, void 0, void 0, function* () {
186
168
  const query = (0, queries_1.GET_PRODUCTS_DYNAMIC)(fields);
187
- console.log("Variables getProductsDynamic", param);
188
169
  const variablesHandle = Object.assign({ partnerId: this.orgId, storeChannel: store ? store : this.storeId }, param);
189
- console.log("variablesHandle getProductsDynamic", variablesHandle);
190
170
  try {
191
171
  const response = yield this.graphqlQueryV2(query, variablesHandle);
192
172
  return response.getProducts;
@@ -439,5 +419,23 @@ class ProductService extends serviceSDK_1.Service {
439
419
  }
440
420
  });
441
421
  }
422
+ getProductFeatureTypesDynamic(productId, storeId, fields) {
423
+ return __awaiter(this, void 0, void 0, function* () {
424
+ const query = (0, queries_1.GET_PRODUCTS_FEATURE_TYPE_DYNAMIC)(fields);
425
+ const variablesHandle = {
426
+ partnerId: this.orgId,
427
+ storeChannel: storeId ? storeId : this.storeId,
428
+ productId: productId,
429
+ };
430
+ try {
431
+ const response = yield this.graphqlQuery(query, variablesHandle);
432
+ return response.getProductFeatureTypes;
433
+ }
434
+ catch (error) {
435
+ console.log(`Error fetching getProductFeatureTypes: ${error}`);
436
+ throw error;
437
+ }
438
+ });
439
+ }
442
440
  }
443
441
  exports.ProductService = ProductService;
@@ -0,0 +1,14 @@
1
+ import { ApolloClient, NormalizedCacheObject } from "@apollo/client";
2
+ import { DocumentNode } from "graphql";
3
+ export declare class Service {
4
+ protected token: string | null;
5
+ protected client: ApolloClient<NormalizedCacheObject>;
6
+ protected orgId: string;
7
+ protected storeId: string;
8
+ protected endpoint: string;
9
+ constructor(endpoint: string, orgId: string, storeId: string);
10
+ setToken(token: string): void;
11
+ protected graphqlQuery(query: DocumentNode, variables: any): Promise<any>;
12
+ protected graphqlMutation(mutation: DocumentNode, variables: any): Promise<any>;
13
+ protected restApiCallWithToken(path: string, method: "GET" | "POST" | "PUT" | "DELETE", data?: any, headers?: any): Promise<any>;
14
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ // src/service.ts
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.Service = void 0;
17
+ const client_1 = require("@apollo/client");
18
+ const axios_1 = __importDefault(require("axios"));
19
+ class Service {
20
+ constructor(endpoint, orgId, storeId) {
21
+ this.token = null;
22
+ this.client = new client_1.ApolloClient({
23
+ uri: endpoint,
24
+ cache: new client_1.InMemoryCache(),
25
+ defaultOptions: {
26
+ query: {
27
+ fetchPolicy: "network-only",
28
+ },
29
+ },
30
+ });
31
+ this.orgId = orgId;
32
+ this.storeId = storeId;
33
+ this.endpoint = endpoint;
34
+ }
35
+ setToken(token) {
36
+ this.token = token;
37
+ }
38
+ // setOrgId(orgId: string) {
39
+ // this.orgId = orgId;
40
+ // }
41
+ graphqlQuery(query, variables) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ try {
44
+ const { data, errors } = yield this.client.query({
45
+ query: (0, client_1.gql) `
46
+ ${query}
47
+ `,
48
+ variables,
49
+ });
50
+ if (errors) {
51
+ throw new Error(`GraphQL error! errors: ${errors}`);
52
+ }
53
+ return data;
54
+ }
55
+ catch (error) {
56
+ console.log(`Error in graphqlQuery: ${error}`);
57
+ throw error;
58
+ }
59
+ });
60
+ }
61
+ graphqlMutation(mutation, variables) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ try {
64
+ const { data, errors } = yield this.client.mutate({
65
+ mutation: (0, client_1.gql) `
66
+ ${mutation}
67
+ `,
68
+ variables,
69
+ });
70
+ if (errors) {
71
+ throw new Error(`GraphQL error! errors: ${errors}`);
72
+ }
73
+ return data;
74
+ }
75
+ catch (error) {
76
+ console.log(`Error in graphqlMutation: ${error}`);
77
+ throw error;
78
+ }
79
+ });
80
+ }
81
+ restApiCallWithToken(path, method, data, headers) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ try {
84
+ const modifiedHeaders = Object.assign(Object.assign({}, headers), { "Partner-Id": this.orgId, "X-Ecomos-Access-Token": this.token });
85
+ console.log("🚀 ~ Service ~ modifiedHeaders:", modifiedHeaders);
86
+ const response = yield (0, axios_1.default)({
87
+ url: this.endpoint + path,
88
+ method,
89
+ data,
90
+ headers: modifiedHeaders,
91
+ });
92
+ return response.data;
93
+ }
94
+ catch (error) {
95
+ console.log(`Error in restApiCallWithToken: ${error}`);
96
+ throw error;
97
+ }
98
+ });
99
+ }
100
+ }
101
+ exports.Service = Service;
@@ -0,0 +1 @@
1
+ export declare function buildFieldString(fields: (string | Record<string, any>)[], indent?: number): string;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildFieldString = void 0;
4
+ function buildFieldString(fields, indent = 6) {
5
+ const space = " ".repeat(indent);
6
+ return fields
7
+ .map((field) => {
8
+ if (typeof field === "string")
9
+ return `${space}${field}`;
10
+ const [key, value] = Object.entries(field)[0];
11
+ const nested = buildFieldString(value, indent + 2);
12
+ return `${space}${key} {\n${nested}\n${space}}`;
13
+ })
14
+ .join("\n");
15
+ }
16
+ exports.buildFieldString = buildFieldString;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longvansoftware/service-js-client",
3
- "version": "2.2.7",
3
+ "version": "2.2.8",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "files": [