@adtrackify/at-service-common 3.1.45 → 3.1.47
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/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
- package/dist/cjs/__tests__/identity-cache/identity-cache-db-service.spec.js +527 -527
- package/dist/cjs/__tests__/libs/compress-decompress.spec.d.ts +1 -1
- package/dist/cjs/__tests__/libs/compress-decompress.spec.js +16 -16
- package/dist/cjs/__tests__/s3-client/s3-client.spec.d.ts +1 -1
- package/dist/cjs/__tests__/s3-client/s3-client.spec.js +26 -26
- package/dist/cjs/clients/generic/cognito-client.d.ts +22 -22
- package/dist/cjs/clients/generic/cognito-client.js +175 -175
- package/dist/cjs/clients/generic/dynamodb-client.d.ts +17 -17
- package/dist/cjs/clients/generic/dynamodb-client.js +167 -167
- package/dist/cjs/clients/generic/eventbridge-client.d.ts +14 -14
- package/dist/cjs/clients/generic/eventbridge-client.js +49 -49
- package/dist/cjs/clients/generic/http-client.d.ts +88 -88
- package/dist/cjs/clients/generic/http-client.js +60 -60
- package/dist/cjs/clients/generic/index.d.ts +10 -10
- package/dist/cjs/clients/generic/index.js +26 -26
- package/dist/cjs/clients/generic/lambda-invoke-client.d.ts +10 -10
- package/dist/cjs/clients/generic/lambda-invoke-client.js +35 -35
- package/dist/cjs/clients/generic/location-client.d.ts +8 -8
- package/dist/cjs/clients/generic/location-client.js +31 -31
- package/dist/cjs/clients/generic/redis-client.d.ts +18 -18
- package/dist/cjs/clients/generic/redis-client.js +128 -128
- package/dist/cjs/clients/generic/s3-client.d.ts +16 -16
- package/dist/cjs/clients/generic/s3-client.js +110 -110
- package/dist/cjs/clients/generic/singlestore-db-client.d.ts +14 -14
- package/dist/cjs/clients/generic/singlestore-db-client.js +67 -67
- package/dist/cjs/clients/generic/sqs-client.d.ts +20 -20
- package/dist/cjs/clients/generic/sqs-client.js +36 -36
- package/dist/cjs/clients/index.d.ts +3 -3
- package/dist/cjs/clients/index.js +19 -19
- package/dist/cjs/clients/internal-api/accounts-client.d.ts +112 -112
- package/dist/cjs/clients/internal-api/accounts-client.js +117 -117
- package/dist/cjs/clients/internal-api/cache-lambda-client.d.ts +25 -25
- package/dist/cjs/clients/internal-api/cache-lambda-client.js +79 -84
- package/dist/cjs/clients/internal-api/cache-lambda-client.js.map +1 -1
- package/dist/cjs/clients/internal-api/db-management-client.d.ts +18 -18
- package/dist/cjs/clients/internal-api/db-management-client.js +39 -39
- package/dist/cjs/clients/internal-api/destinations-client.d.ts +29 -29
- package/dist/cjs/clients/internal-api/destinations-client.js +54 -54
- package/dist/cjs/clients/internal-api/event-collector-client.d.ts +20 -20
- package/dist/cjs/clients/internal-api/event-collector-client.js +39 -39
- package/dist/cjs/clients/internal-api/identity-client.d.ts +25 -25
- package/dist/cjs/clients/internal-api/identity-client.js +92 -92
- package/dist/cjs/clients/internal-api/index.d.ts +8 -8
- package/dist/cjs/clients/internal-api/index.js +24 -24
- package/dist/cjs/clients/internal-api/shopify-app-install-client.d.ts +34 -34
- package/dist/cjs/clients/internal-api/shopify-app-install-client.js +63 -63
- package/dist/cjs/clients/internal-api/users-auth-client.d.ts +35 -35
- package/dist/cjs/clients/internal-api/users-auth-client.js +110 -110
- package/dist/cjs/clients/third-party/index.d.ts +1 -1
- package/dist/cjs/clients/third-party/index.js +17 -17
- package/dist/cjs/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
- package/dist/cjs/clients/third-party/shopify/graphql-product-queries.js +180 -180
- package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.d.ts +9 -9
- package/dist/cjs/clients/third-party/shopify/shopify-graphql-client.js +95 -95
- package/dist/cjs/clients/third-party/shopify-client.d.ts +198 -198
- package/dist/cjs/clients/third-party/shopify-client.js +150 -150
- package/dist/cjs/helpers/identity-cache-helper.d.ts +4 -4
- package/dist/cjs/helpers/identity-cache-helper.js +150 -150
- package/dist/cjs/helpers/index.d.ts +5 -5
- package/dist/cjs/helpers/index.js +21 -21
- package/dist/cjs/helpers/input-validation-helper.d.ts +3 -3
- package/dist/cjs/helpers/input-validation-helper.js +22 -22
- package/dist/cjs/helpers/logging-helper.d.ts +16 -16
- package/dist/cjs/helpers/logging-helper.js +84 -84
- package/dist/cjs/helpers/response-helper.d.ts +15 -15
- package/dist/cjs/helpers/response-helper.js +42 -42
- package/dist/cjs/helpers/shopify-helper.d.ts +9 -9
- package/dist/cjs/helpers/shopify-helper.js +28 -28
- package/dist/cjs/index.d.ts +5 -5
- package/dist/cjs/index.js +21 -21
- package/dist/cjs/libs/clickId-parser.d.ts +23 -23
- package/dist/cjs/libs/clickId-parser.js +49 -49
- package/dist/cjs/libs/compression.d.ts +2 -2
- package/dist/cjs/libs/compression.js +33 -33
- package/dist/cjs/libs/crypto.d.ts +1 -1
- package/dist/cjs/libs/crypto.js +12 -12
- package/dist/cjs/libs/dates.d.ts +6 -6
- package/dist/cjs/libs/dates.js +31 -31
- package/dist/cjs/libs/http-error.d.ts +21 -21
- package/dist/cjs/libs/http-error.js +59 -59
- package/dist/cjs/libs/http-status-codes.d.ts +58 -58
- package/dist/cjs/libs/http-status-codes.js +62 -62
- package/dist/cjs/libs/index.d.ts +9 -9
- package/dist/cjs/libs/index.js +25 -25
- package/dist/cjs/libs/referrer-parser/index.d.ts +2 -2
- package/dist/cjs/libs/referrer-parser/index.js +18 -18
- package/dist/cjs/libs/referrer-parser/referrer-data.d.ts +9 -9
- package/dist/cjs/libs/referrer-parser/referrer-data.js +4712 -4712
- package/dist/cjs/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
- package/dist/cjs/libs/referrer-parser/referrer-parser-util.js +128 -128
- package/dist/cjs/libs/url.d.ts +1 -1
- package/dist/cjs/libs/url.js +13 -13
- package/dist/cjs/services/cache/generic-cached-object.d.ts +5 -5
- package/dist/cjs/services/cache/generic-cached-object.js +2 -2
- package/dist/cjs/services/cache/index.d.ts +1 -1
- package/dist/cjs/services/cache/index.js +17 -17
- package/dist/cjs/services/cache/product-cache-service.d.ts +21 -21
- package/dist/cjs/services/cache/product-cache-service.js +68 -68
- package/dist/cjs/services/db/destinations-db-service.d.ts +9 -9
- package/dist/cjs/services/db/destinations-db-service.js +57 -57
- package/dist/cjs/services/db/identity-cache-db-service.d.ts +24 -24
- package/dist/cjs/services/db/identity-cache-db-service.js +233 -233
- package/dist/cjs/services/db/index.d.ts +7 -7
- package/dist/cjs/services/db/index.js +23 -23
- package/dist/cjs/services/db/log-events-db-service.d.ts +11 -11
- package/dist/cjs/services/db/log-events-db-service.js +172 -172
- package/dist/cjs/services/db/purchased-contacts-db-service.d.ts +9 -9
- package/dist/cjs/services/db/purchased-contacts-db-service.js +38 -38
- package/dist/cjs/services/db/shopify-app-installs-db-service.d.ts +7 -7
- package/dist/cjs/services/db/shopify-app-installs-db-service.js +47 -47
- package/dist/cjs/services/db/shopify-products-cache-db-service.d.ts +16 -16
- package/dist/cjs/services/db/shopify-products-cache-db-service.js +65 -65
- package/dist/cjs/services/db/tracking-events-db-service.d.ts +20 -20
- package/dist/cjs/services/db/tracking-events-db-service.js +162 -162
- package/dist/cjs/services/eventbridge-integration-service.d.ts +9 -9
- package/dist/cjs/services/eventbridge-integration-service.js +28 -28
- package/dist/cjs/services/generic-cache-service.d.ts +7 -7
- package/dist/cjs/services/generic-cache-service.js +33 -33
- package/dist/cjs/services/index.d.ts +8 -8
- package/dist/cjs/services/index.js +24 -24
- package/dist/cjs/services/ipdata-lookup-service.d.ts +19 -19
- package/dist/cjs/services/ipdata-lookup-service.js +77 -77
- package/dist/cjs/services/log-event-service.d.ts +9 -9
- package/dist/cjs/services/log-event-service.js +56 -56
- package/dist/cjs/services/metric-event-service.d.ts +9 -9
- package/dist/cjs/services/metric-event-service.js +49 -49
- package/dist/cjs/services/shopify/index.d.ts +3 -3
- package/dist/cjs/services/shopify/index.js +19 -19
- package/dist/cjs/services/shopify/products/index.d.ts +1 -1
- package/dist/cjs/services/shopify/products/index.js +17 -17
- package/dist/cjs/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
- package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js +101 -81
- package/dist/cjs/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
- package/dist/cjs/services/shopify/shopify-graphql-transformer.d.ts +9 -9
- package/dist/cjs/services/shopify/shopify-graphql-transformer.js +130 -130
- package/dist/cjs/services/shopify/types/index.d.ts +1 -1
- package/dist/cjs/services/shopify/types/index.js +17 -17
- package/dist/cjs/services/shopify/types/product.d.ts +115 -115
- package/dist/cjs/services/shopify/types/product.js +9 -9
- package/dist/cjs/types/api-response.d.ts +6 -6
- package/dist/cjs/types/api-response.js +2 -2
- package/dist/cjs/types/index.d.ts +2 -2
- package/dist/cjs/types/index.js +18 -18
- package/dist/cjs/types/internal-events/event-detail-types.d.ts +20 -20
- package/dist/cjs/types/internal-events/event-detail-types.js +27 -27
- package/dist/cjs/types/internal-events/index.d.ts +1 -1
- package/dist/cjs/types/internal-events/index.js +17 -17
- package/dist/cjs/types/shopify-graphql-types/admin.generated.d.ts +105 -105
- package/dist/cjs/types/shopify-graphql-types/admin.generated.js +2 -2
- package/dist/cjs/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
- package/dist/cjs/types/shopify-graphql-types/admin.types.js +5311 -5311
- package/dist/cjs/types/shopify-graphql-types/index.d.ts +2 -2
- package/dist/cjs/types/shopify-graphql-types/index.js +18 -18
- package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.d.ts +1 -1
- package/dist/esm/__tests__/identity-cache/identity-cache-db-service.spec.js +525 -525
- package/dist/esm/__tests__/libs/compress-decompress.spec.d.ts +1 -1
- package/dist/esm/__tests__/libs/compress-decompress.spec.js +14 -14
- package/dist/esm/__tests__/s3-client/s3-client.spec.d.ts +1 -1
- package/dist/esm/__tests__/s3-client/s3-client.spec.js +24 -24
- package/dist/esm/clients/generic/cognito-client.d.ts +22 -22
- package/dist/esm/clients/generic/cognito-client.js +170 -170
- package/dist/esm/clients/generic/dynamodb-client.d.ts +17 -17
- package/dist/esm/clients/generic/dynamodb-client.js +163 -163
- package/dist/esm/clients/generic/eventbridge-client.d.ts +14 -14
- package/dist/esm/clients/generic/eventbridge-client.js +45 -45
- package/dist/esm/clients/generic/http-client.d.ts +88 -88
- package/dist/esm/clients/generic/http-client.js +52 -52
- package/dist/esm/clients/generic/index.d.ts +10 -10
- package/dist/esm/clients/generic/index.js +10 -10
- package/dist/esm/clients/generic/lambda-invoke-client.d.ts +10 -10
- package/dist/esm/clients/generic/lambda-invoke-client.js +31 -31
- package/dist/esm/clients/generic/location-client.d.ts +8 -8
- package/dist/esm/clients/generic/location-client.js +27 -27
- package/dist/esm/clients/generic/redis-client.d.ts +18 -18
- package/dist/esm/clients/generic/redis-client.js +121 -121
- package/dist/esm/clients/generic/s3-client.d.ts +16 -16
- package/dist/esm/clients/generic/s3-client.js +106 -106
- package/dist/esm/clients/generic/singlestore-db-client.d.ts +14 -14
- package/dist/esm/clients/generic/singlestore-db-client.js +40 -40
- package/dist/esm/clients/generic/sqs-client.d.ts +20 -20
- package/dist/esm/clients/generic/sqs-client.js +32 -32
- package/dist/esm/clients/index.d.ts +3 -3
- package/dist/esm/clients/index.js +3 -3
- package/dist/esm/clients/internal-api/accounts-client.d.ts +112 -112
- package/dist/esm/clients/internal-api/accounts-client.js +113 -113
- package/dist/esm/clients/internal-api/cache-lambda-client.d.ts +25 -25
- package/dist/esm/clients/internal-api/cache-lambda-client.js +75 -80
- package/dist/esm/clients/internal-api/cache-lambda-client.js.map +1 -1
- package/dist/esm/clients/internal-api/db-management-client.d.ts +18 -18
- package/dist/esm/clients/internal-api/db-management-client.js +32 -32
- package/dist/esm/clients/internal-api/destinations-client.d.ts +29 -29
- package/dist/esm/clients/internal-api/destinations-client.js +50 -50
- package/dist/esm/clients/internal-api/event-collector-client.d.ts +20 -20
- package/dist/esm/clients/internal-api/event-collector-client.js +32 -32
- package/dist/esm/clients/internal-api/identity-client.d.ts +25 -25
- package/dist/esm/clients/internal-api/identity-client.js +88 -88
- package/dist/esm/clients/internal-api/index.d.ts +8 -8
- package/dist/esm/clients/internal-api/index.js +8 -8
- package/dist/esm/clients/internal-api/shopify-app-install-client.d.ts +34 -34
- package/dist/esm/clients/internal-api/shopify-app-install-client.js +56 -56
- package/dist/esm/clients/internal-api/users-auth-client.d.ts +35 -35
- package/dist/esm/clients/internal-api/users-auth-client.js +106 -106
- package/dist/esm/clients/third-party/index.d.ts +1 -1
- package/dist/esm/clients/third-party/index.js +1 -1
- package/dist/esm/clients/third-party/shopify/graphql-product-queries.d.ts +2 -2
- package/dist/esm/clients/third-party/shopify/graphql-product-queries.js +177 -177
- package/dist/esm/clients/third-party/shopify/shopify-graphql-client.d.ts +9 -9
- package/dist/esm/clients/third-party/shopify/shopify-graphql-client.js +91 -91
- package/dist/esm/clients/third-party/shopify-client.d.ts +198 -198
- package/dist/esm/clients/third-party/shopify-client.js +146 -146
- package/dist/esm/helpers/identity-cache-helper.d.ts +4 -4
- package/dist/esm/helpers/identity-cache-helper.js +145 -145
- package/dist/esm/helpers/index.d.ts +5 -5
- package/dist/esm/helpers/index.js +5 -5
- package/dist/esm/helpers/input-validation-helper.d.ts +3 -3
- package/dist/esm/helpers/input-validation-helper.js +18 -18
- package/dist/esm/helpers/logging-helper.d.ts +16 -16
- package/dist/esm/helpers/logging-helper.js +56 -56
- package/dist/esm/helpers/response-helper.d.ts +15 -15
- package/dist/esm/helpers/response-helper.js +36 -36
- package/dist/esm/helpers/shopify-helper.d.ts +9 -9
- package/dist/esm/helpers/shopify-helper.js +23 -23
- package/dist/esm/index.d.ts +5 -5
- package/dist/esm/index.js +5 -5
- package/dist/esm/libs/clickId-parser.d.ts +23 -23
- package/dist/esm/libs/clickId-parser.js +45 -45
- package/dist/esm/libs/compression.d.ts +2 -2
- package/dist/esm/libs/compression.js +25 -25
- package/dist/esm/libs/crypto.d.ts +1 -1
- package/dist/esm/libs/crypto.js +5 -5
- package/dist/esm/libs/dates.d.ts +6 -6
- package/dist/esm/libs/dates.js +22 -22
- package/dist/esm/libs/http-error.d.ts +21 -21
- package/dist/esm/libs/http-error.js +55 -55
- package/dist/esm/libs/http-status-codes.d.ts +58 -58
- package/dist/esm/libs/http-status-codes.js +59 -59
- package/dist/esm/libs/index.d.ts +9 -9
- package/dist/esm/libs/index.js +9 -9
- package/dist/esm/libs/referrer-parser/index.d.ts +2 -2
- package/dist/esm/libs/referrer-parser/index.js +2 -2
- package/dist/esm/libs/referrer-parser/referrer-data.d.ts +9 -9
- package/dist/esm/libs/referrer-parser/referrer-data.js +4709 -4709
- package/dist/esm/libs/referrer-parser/referrer-parser-util.d.ts +20 -20
- package/dist/esm/libs/referrer-parser/referrer-parser-util.js +121 -121
- package/dist/esm/libs/url.d.ts +1 -1
- package/dist/esm/libs/url.js +9 -9
- package/dist/esm/services/cache/generic-cached-object.d.ts +5 -5
- package/dist/esm/services/cache/generic-cached-object.js +1 -1
- package/dist/esm/services/cache/index.d.ts +1 -1
- package/dist/esm/services/cache/index.js +1 -1
- package/dist/esm/services/cache/product-cache-service.d.ts +21 -21
- package/dist/esm/services/cache/product-cache-service.js +60 -60
- package/dist/esm/services/db/destinations-db-service.d.ts +9 -9
- package/dist/esm/services/db/destinations-db-service.js +53 -53
- package/dist/esm/services/db/identity-cache-db-service.d.ts +24 -24
- package/dist/esm/services/db/identity-cache-db-service.js +229 -229
- package/dist/esm/services/db/index.d.ts +7 -7
- package/dist/esm/services/db/index.js +7 -7
- package/dist/esm/services/db/log-events-db-service.d.ts +11 -11
- package/dist/esm/services/db/log-events-db-service.js +168 -168
- package/dist/esm/services/db/purchased-contacts-db-service.d.ts +9 -9
- package/dist/esm/services/db/purchased-contacts-db-service.js +34 -34
- package/dist/esm/services/db/shopify-app-installs-db-service.d.ts +7 -7
- package/dist/esm/services/db/shopify-app-installs-db-service.js +43 -43
- package/dist/esm/services/db/shopify-products-cache-db-service.d.ts +16 -16
- package/dist/esm/services/db/shopify-products-cache-db-service.js +58 -58
- package/dist/esm/services/db/tracking-events-db-service.d.ts +20 -20
- package/dist/esm/services/db/tracking-events-db-service.js +158 -158
- package/dist/esm/services/eventbridge-integration-service.d.ts +9 -9
- package/dist/esm/services/eventbridge-integration-service.js +24 -24
- package/dist/esm/services/generic-cache-service.d.ts +7 -7
- package/dist/esm/services/generic-cache-service.js +29 -29
- package/dist/esm/services/index.d.ts +8 -8
- package/dist/esm/services/index.js +8 -8
- package/dist/esm/services/ipdata-lookup-service.d.ts +19 -19
- package/dist/esm/services/ipdata-lookup-service.js +73 -73
- package/dist/esm/services/log-event-service.d.ts +9 -9
- package/dist/esm/services/log-event-service.js +52 -52
- package/dist/esm/services/metric-event-service.d.ts +9 -9
- package/dist/esm/services/metric-event-service.js +45 -45
- package/dist/esm/services/shopify/index.d.ts +3 -3
- package/dist/esm/services/shopify/index.js +3 -3
- package/dist/esm/services/shopify/products/index.d.ts +1 -1
- package/dist/esm/services/shopify/products/index.js +1 -1
- package/dist/esm/services/shopify/products/shopify-products-serviceV2.d.ts +17 -17
- package/dist/esm/services/shopify/products/shopify-products-serviceV2.js +97 -77
- package/dist/esm/services/shopify/products/shopify-products-serviceV2.js.map +1 -1
- package/dist/esm/services/shopify/shopify-graphql-transformer.d.ts +9 -9
- package/dist/esm/services/shopify/shopify-graphql-transformer.js +127 -127
- package/dist/esm/services/shopify/types/index.d.ts +1 -1
- package/dist/esm/services/shopify/types/index.js +1 -1
- package/dist/esm/services/shopify/types/product.d.ts +115 -115
- package/dist/esm/services/shopify/types/product.js +6 -6
- package/dist/esm/types/api-response.d.ts +6 -6
- package/dist/esm/types/api-response.js +1 -1
- package/dist/esm/types/index.d.ts +2 -2
- package/dist/esm/types/index.js +2 -2
- package/dist/esm/types/internal-events/event-detail-types.d.ts +20 -20
- package/dist/esm/types/internal-events/event-detail-types.js +24 -24
- package/dist/esm/types/internal-events/index.d.ts +1 -1
- package/dist/esm/types/internal-events/index.js +1 -1
- package/dist/esm/types/shopify-graphql-types/admin.generated.d.ts +105 -105
- package/dist/esm/types/shopify-graphql-types/admin.generated.js +1 -1
- package/dist/esm/types/shopify-graphql-types/admin.types.d.ts +26289 -26289
- package/dist/esm/types/shopify-graphql-types/admin.types.js +5299 -5299
- package/dist/esm/types/shopify-graphql-types/index.d.ts +2 -2
- package/dist/esm/types/shopify-graphql-types/index.js +2 -2
- package/package.json +123 -123
|
@@ -1,78 +1,98 @@
|
|
|
1
|
-
import { Logger } from '../../../helpers';
|
|
2
|
-
import { ProductCacheService } from '../../cache/product-cache-service';
|
|
3
|
-
import { ShopifyGraphQLTransformer } from '../shopify-graphql-transformer';
|
|
4
|
-
import { ShopifyGraphQLClient } from '../../../clients/third-party/shopify/shopify-graphql-client';
|
|
5
|
-
import { ShopifyProductsCacheDbService } from '../../db/shopify-products-cache-db-service';
|
|
6
|
-
export class ShopifyProductsServiceV2 {
|
|
7
|
-
productCacheService;
|
|
8
|
-
shopifyProductsCacheDbService;
|
|
9
|
-
TABLE_NAME;
|
|
10
|
-
TABLE_KEY;
|
|
11
|
-
redisCacheTtlInSeconds;
|
|
12
|
-
dynamoDbCacheTtlInSeconds;
|
|
13
|
-
constructor(cacheLambdaFunctionArn, tableName, tableKey, redisCacheTtlInSeconds, dynamoDbCacheTtlInSeconds) {
|
|
14
|
-
this.TABLE_NAME = tableName;
|
|
15
|
-
this.TABLE_KEY = tableKey;
|
|
16
|
-
this.redisCacheTtlInSeconds = redisCacheTtlInSeconds;
|
|
17
|
-
this.dynamoDbCacheTtlInSeconds = dynamoDbCacheTtlInSeconds;
|
|
18
|
-
this.productCacheService = new ProductCacheService(cacheLambdaFunctionArn, this.redisCacheTtlInSeconds);
|
|
19
|
-
this.shopifyProductsCacheDbService = new ShopifyProductsCacheDbService(this.TABLE_NAME, this.TABLE_KEY, this.dynamoDbCacheTtlInSeconds);
|
|
20
|
-
}
|
|
21
|
-
getShopifyProduct = async (pixelId, shop, accessToken, productId, useCache = true, updateCache = true) => {
|
|
22
|
-
try {
|
|
23
|
-
let getShopifyProductResponse = {};
|
|
24
|
-
if (useCache) {
|
|
25
|
-
let product = await this.productCacheService.getProductFromCache(pixelId, productId);
|
|
26
|
-
if (product) {
|
|
27
|
-
Logger.debug('getShopifyProduct: Product found in cache', { pixelId, shop, productId, product });
|
|
28
|
-
getShopifyProductResponse.transformedProduct = product;
|
|
29
|
-
return getShopifyProductResponse;
|
|
30
|
-
}
|
|
31
|
-
product = await this.shopifyProductsCacheDbService.getProductFromDynamoDBCache(pixelId, productId);
|
|
32
|
-
if (product) {
|
|
33
|
-
Logger.debug('getShopifyProduct: Product found in dynamoDB cache', { pixelId, shop, productId, product });
|
|
34
|
-
getShopifyProductResponse.transformedProduct = product;
|
|
35
|
-
return getShopifyProductResponse;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
getShopifyProductResponse = await this.getShopifyProductFromAPI(pixelId, shop, accessToken, productId, true);
|
|
39
|
-
if (getShopifyProductResponse?.transformedProduct && updateCache) {
|
|
40
|
-
const product = getShopifyProductResponse.transformedProduct;
|
|
41
|
-
Logger.debug('getShopifyProduct: Product found in ShopifyAPI, putting in cache', { pixelId, productId, product });
|
|
42
|
-
await this.productCacheService.putProductInCache(pixelId, productId, product);
|
|
43
|
-
await this.shopifyProductsCacheDbService.putProductInDynamoDBCache(pixelId, productId, product);
|
|
44
|
-
}
|
|
45
|
-
Logger.debug('getShopifyProduct: Returning product', { pixelId, shop, productId, product: getShopifyProductResponse?.transformedProduct });
|
|
46
|
-
return getShopifyProductResponse;
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
Logger.error('getShopifyProduct: Failed getShopifyProductWithCachingGraphQL', { error });
|
|
50
|
-
return null;
|
|
51
|
-
}
|
|
52
|
-
};
|
|
53
|
-
getShopifyProductFromAPI = async (pixelId, shop, accessToken, productId, useTransformer = true) => {
|
|
54
|
-
try {
|
|
55
|
-
const response = await ShopifyGraphQLClient.getProductWithVariantsGraphQL(shop, accessToken, productId, 100);
|
|
56
|
-
const getShopifyProductResponse = response;
|
|
57
|
-
if (response?.data?.product) {
|
|
58
|
-
const product = response.data.product;
|
|
59
|
-
Logger.debug('getShopifyProductFromAPI: Product found in ShopifyAPI', { pixelId, shop, productId, product });
|
|
60
|
-
if (useTransformer) {
|
|
61
|
-
const transformedProduct = ShopifyGraphQLTransformer.transformToInternalProduct(product);
|
|
62
|
-
getShopifyProductResponse.transformedProduct = transformedProduct;
|
|
63
|
-
Logger.debug('getShopifyProductFromAPI: Product transformed', { pixelId,
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
1
|
+
import { Logger } from '../../../helpers';
|
|
2
|
+
import { ProductCacheService } from '../../cache/product-cache-service';
|
|
3
|
+
import { ShopifyGraphQLTransformer } from '../shopify-graphql-transformer';
|
|
4
|
+
import { ShopifyGraphQLClient } from '../../../clients/third-party/shopify/shopify-graphql-client';
|
|
5
|
+
import { ShopifyProductsCacheDbService } from '../../db/shopify-products-cache-db-service';
|
|
6
|
+
export class ShopifyProductsServiceV2 {
|
|
7
|
+
productCacheService;
|
|
8
|
+
shopifyProductsCacheDbService;
|
|
9
|
+
TABLE_NAME;
|
|
10
|
+
TABLE_KEY;
|
|
11
|
+
redisCacheTtlInSeconds;
|
|
12
|
+
dynamoDbCacheTtlInSeconds;
|
|
13
|
+
constructor(cacheLambdaFunctionArn, tableName, tableKey, redisCacheTtlInSeconds, dynamoDbCacheTtlInSeconds) {
|
|
14
|
+
this.TABLE_NAME = tableName;
|
|
15
|
+
this.TABLE_KEY = tableKey;
|
|
16
|
+
this.redisCacheTtlInSeconds = redisCacheTtlInSeconds;
|
|
17
|
+
this.dynamoDbCacheTtlInSeconds = dynamoDbCacheTtlInSeconds;
|
|
18
|
+
this.productCacheService = new ProductCacheService(cacheLambdaFunctionArn, this.redisCacheTtlInSeconds);
|
|
19
|
+
this.shopifyProductsCacheDbService = new ShopifyProductsCacheDbService(this.TABLE_NAME, this.TABLE_KEY, this.dynamoDbCacheTtlInSeconds);
|
|
20
|
+
}
|
|
21
|
+
getShopifyProduct = async (pixelId, shop, accessToken, productId, useCache = true, updateCache = true) => {
|
|
22
|
+
try {
|
|
23
|
+
let getShopifyProductResponse = {};
|
|
24
|
+
if (useCache) {
|
|
25
|
+
let product = await this.productCacheService.getProductFromCache(pixelId, productId);
|
|
26
|
+
if (product) {
|
|
27
|
+
Logger.debug('getShopifyProduct: Product found in cache', { pixelId, shop, productId, product });
|
|
28
|
+
getShopifyProductResponse.transformedProduct = product;
|
|
29
|
+
return getShopifyProductResponse;
|
|
30
|
+
}
|
|
31
|
+
product = await this.shopifyProductsCacheDbService.getProductFromDynamoDBCache(pixelId, productId);
|
|
32
|
+
if (product) {
|
|
33
|
+
Logger.debug('getShopifyProduct: Product found in dynamoDB cache', { pixelId, shop, productId, product });
|
|
34
|
+
getShopifyProductResponse.transformedProduct = product;
|
|
35
|
+
return getShopifyProductResponse;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
getShopifyProductResponse = await this.getShopifyProductFromAPI(pixelId, shop, accessToken, productId, true);
|
|
39
|
+
if (getShopifyProductResponse?.transformedProduct && updateCache) {
|
|
40
|
+
const product = getShopifyProductResponse.transformedProduct;
|
|
41
|
+
Logger.debug('getShopifyProduct: Product found in ShopifyAPI, putting in cache', { pixelId, productId, product });
|
|
42
|
+
await this.productCacheService.putProductInCache(pixelId, productId, product);
|
|
43
|
+
await this.shopifyProductsCacheDbService.putProductInDynamoDBCache(pixelId, productId, product);
|
|
44
|
+
}
|
|
45
|
+
Logger.debug('getShopifyProduct: Returning product', { pixelId, shop, productId, product: getShopifyProductResponse?.transformedProduct });
|
|
46
|
+
return getShopifyProductResponse;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
Logger.error('getShopifyProduct: Failed getShopifyProductWithCachingGraphQL', { error });
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
getShopifyProductFromAPI = async (pixelId, shop, accessToken, productId, useTransformer = true) => {
|
|
54
|
+
try {
|
|
55
|
+
const response = await ShopifyGraphQLClient.getProductWithVariantsGraphQL(shop, accessToken, productId, 100);
|
|
56
|
+
const getShopifyProductResponse = response;
|
|
57
|
+
if (response?.data?.product) {
|
|
58
|
+
const product = response.data.product;
|
|
59
|
+
Logger.debug('getShopifyProductFromAPI: Product found in ShopifyAPI', { pixelId, shop, productId, product });
|
|
60
|
+
if (useTransformer) {
|
|
61
|
+
const transformedProduct = ShopifyGraphQLTransformer.transformToInternalProduct(product);
|
|
62
|
+
getShopifyProductResponse.transformedProduct = transformedProduct;
|
|
63
|
+
Logger.debug('getShopifyProductFromAPI: Product transformed', { pixelId,
|
|
64
|
+
shop,
|
|
65
|
+
productId,
|
|
66
|
+
transformedProduct: getShopifyProductResponse.transformedProduct,
|
|
67
|
+
errors: response?.errors,
|
|
68
|
+
error: response?.errors?.message
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
return getShopifyProductResponse;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
Logger.error('getShopifyProductFromAPI: Product ShopifyAPI error', { pixelId,
|
|
75
|
+
shop,
|
|
76
|
+
productId,
|
|
77
|
+
errors: response?.errors,
|
|
78
|
+
responseError: response?.errors,
|
|
79
|
+
error: response?.errors?.message
|
|
80
|
+
});
|
|
81
|
+
return getShopifyProductResponse;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
Logger.error('getShopifyProductFromAPI: Failed getShopifyProductFromAPI', {
|
|
86
|
+
e: error,
|
|
87
|
+
pixelId,
|
|
88
|
+
shop,
|
|
89
|
+
accessToken,
|
|
90
|
+
productId,
|
|
91
|
+
useTransformer,
|
|
92
|
+
error: error
|
|
93
|
+
});
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
}
|
|
78
98
|
//# sourceMappingURL=shopify-products-serviceV2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shopify-products-serviceV2.js","sourceRoot":"","sources":["../../../../../src/services/shopify/products/shopify-products-serviceV2.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shopify-products-serviceV2.js","sourceRoot":"","sources":["../../../../../src/services/shopify/products/shopify-products-serviceV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { InventoryItem, Product, ProductVariant } from '../../types/shopify-graphql-types/admin.types';
|
|
2
|
-
import { InternalInventoryItem } from './types/product';
|
|
3
|
-
import { InternalProduct, InternalProductVariant } from './types/product';
|
|
4
|
-
export declare const ShopifyGraphQLTransformer: {
|
|
5
|
-
transformToInternalProduct: (product: Partial<Product>) => InternalProduct | undefined;
|
|
6
|
-
transformToInternalProductVariant: (variant: Partial<ProductVariant>) => InternalProductVariant | undefined;
|
|
7
|
-
transformToInternalInventoryItem: (inventoryItem: Partial<InventoryItem>) => InternalInventoryItem | undefined;
|
|
8
|
-
buildUnitCost: (inventoryItem: Partial<InventoryItem>) => number | undefined;
|
|
9
|
-
};
|
|
1
|
+
import { InventoryItem, Product, ProductVariant } from '../../types/shopify-graphql-types/admin.types';
|
|
2
|
+
import { InternalInventoryItem } from './types/product';
|
|
3
|
+
import { InternalProduct, InternalProductVariant } from './types/product';
|
|
4
|
+
export declare const ShopifyGraphQLTransformer: {
|
|
5
|
+
transformToInternalProduct: (product: Partial<Product>) => InternalProduct | undefined;
|
|
6
|
+
transformToInternalProductVariant: (variant: Partial<ProductVariant>) => InternalProductVariant | undefined;
|
|
7
|
+
transformToInternalInventoryItem: (inventoryItem: Partial<InventoryItem>) => InternalInventoryItem | undefined;
|
|
8
|
+
buildUnitCost: (inventoryItem: Partial<InventoryItem>) => number | undefined;
|
|
9
|
+
};
|
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
export const ShopifyGraphQLTransformer = {
|
|
2
|
-
transformToInternalProduct: (product) => {
|
|
3
|
-
if (!product)
|
|
4
|
-
return undefined;
|
|
5
|
-
const internalProduct = {
|
|
6
|
-
id: product?.id,
|
|
7
|
-
legacyResourceId: Number(product.legacyResourceId),
|
|
8
|
-
title: product.title,
|
|
9
|
-
description: product.description,
|
|
10
|
-
handle: product?.handle,
|
|
11
|
-
productType: product?.productType,
|
|
12
|
-
vendor: product.vendor,
|
|
13
|
-
status: product.status,
|
|
14
|
-
createdAt: product.createdAt,
|
|
15
|
-
updatedAt: product.updatedAt,
|
|
16
|
-
publishedAt: product.publishedAt,
|
|
17
|
-
hasOnlyDefaultVariant: product?.hasOnlyDefaultVariant ?? false,
|
|
18
|
-
hasOutOfStockVariants: product?.hasOutOfStockVariants ?? false,
|
|
19
|
-
hasVariantsThatRequiresComponents: product?.hasVariantsThatRequiresComponents ?? false,
|
|
20
|
-
isGiftCard: product?.isGiftCard ?? false,
|
|
21
|
-
onlineStoreUrl: product.onlineStoreUrl,
|
|
22
|
-
onlineStorePreviewUrl: product.onlineStorePreviewUrl,
|
|
23
|
-
tags: product.tags || [],
|
|
24
|
-
totalInventory: product.totalInventory || 0,
|
|
25
|
-
tracksInventory: product.tracksInventory || false,
|
|
26
|
-
featuredImageUrl: product.featuredMedia?.preview?.image?.url,
|
|
27
|
-
images: product.media?.nodes?.map(image => image.preview?.image?.url) || [],
|
|
28
|
-
variantsCount: product?.variantsCount?.count,
|
|
29
|
-
maxVariantCompareAtPrice: Number(product.compareAtPriceRange?.maxVariantCompareAtPrice?.amount || 0),
|
|
30
|
-
minVariantCompareAtPrice: Number(product.compareAtPriceRange?.minVariantCompareAtPrice?.amount || 0),
|
|
31
|
-
maxVariantPrice: Number(product.priceRangeV2?.maxVariantPrice?.amount || 0),
|
|
32
|
-
minVariantPrice: Number(product.priceRangeV2?.minVariantPrice?.amount || 0),
|
|
33
|
-
currency: product.priceRangeV2?.minVariantPrice?.currencyCode || product.priceRangeV2?.maxVariantPrice?.currencyCode,
|
|
34
|
-
media: product?.media?.nodes?.map(media => ({
|
|
35
|
-
id: media.id,
|
|
36
|
-
mediaContentType: media.mediaContentType,
|
|
37
|
-
status: media.status,
|
|
38
|
-
previewImageUrl: media.preview?.image?.url
|
|
39
|
-
})) || [],
|
|
40
|
-
variants: product?.variants?.nodes
|
|
41
|
-
?.map(variant => ShopifyGraphQLTransformer.transformToInternalProductVariant(variant))
|
|
42
|
-
.filter(variant => variant !== undefined) || [],
|
|
43
|
-
collections: product.collections?.nodes?.map(collection => ({
|
|
44
|
-
id: collection.id,
|
|
45
|
-
legacyResourceId: Number(collection.legacyResourceId),
|
|
46
|
-
title: collection.title,
|
|
47
|
-
handle: collection.handle,
|
|
48
|
-
imageUrl: collection.image?.url,
|
|
49
|
-
productsCount: collection.productsCount
|
|
50
|
-
})) || [],
|
|
51
|
-
category: product.category ? {
|
|
52
|
-
id: product.category.id,
|
|
53
|
-
name: product.category.name,
|
|
54
|
-
fullName: product.category.fullName,
|
|
55
|
-
ancestorIds: product.category.ancestorIds,
|
|
56
|
-
childrenIds: product.category.childrenIds,
|
|
57
|
-
} : undefined,
|
|
58
|
-
seoTitle: product.seo?.title,
|
|
59
|
-
seoDescription: product.seo?.description,
|
|
60
|
-
};
|
|
61
|
-
return internalProduct;
|
|
62
|
-
},
|
|
63
|
-
transformToInternalProductVariant: (variant) => {
|
|
64
|
-
if (!variant)
|
|
65
|
-
return undefined;
|
|
66
|
-
const internalVariant = {
|
|
67
|
-
availableForSale: variant.availableForSale || false,
|
|
68
|
-
id: variant.id,
|
|
69
|
-
legacyResourceId: variant?.legacyResourceId,
|
|
70
|
-
title: variant.title,
|
|
71
|
-
displayName: variant.displayName,
|
|
72
|
-
sku: variant?.sku,
|
|
73
|
-
barcode: variant?.barcode,
|
|
74
|
-
price: variant.price,
|
|
75
|
-
amount: Number(variant.price || 0),
|
|
76
|
-
compareAtPrice: variant.compareAtPrice,
|
|
77
|
-
createdAt: variant.createdAt,
|
|
78
|
-
updatedAt: variant.updatedAt,
|
|
79
|
-
position: variant.position || 0,
|
|
80
|
-
inventoryItem: variant?.inventoryItem ? ShopifyGraphQLTransformer.transformToInternalInventoryItem(variant.inventoryItem) : undefined,
|
|
81
|
-
inventoryPolicy: variant?.inventoryPolicy,
|
|
82
|
-
inventoryQuantity: variant?.inventoryQuantity,
|
|
83
|
-
sellableOnlineQuantity: variant.sellableOnlineQuantity || 0,
|
|
84
|
-
taxable: variant.taxable || false,
|
|
85
|
-
taxCode: variant?.taxCode,
|
|
86
|
-
productId: variant.product?.id || '',
|
|
87
|
-
legacyProductResourceId: Number(variant.product?.legacyResourceId || 0),
|
|
88
|
-
featuredImageUrl: variant.image?.url,
|
|
89
|
-
selectedOptions: variant.selectedOptions?.map(option => ({
|
|
90
|
-
name: option.name,
|
|
91
|
-
value: option.value
|
|
92
|
-
})) || [],
|
|
93
|
-
};
|
|
94
|
-
return internalVariant;
|
|
95
|
-
},
|
|
96
|
-
transformToInternalInventoryItem: (inventoryItem) => {
|
|
97
|
-
if (!inventoryItem)
|
|
98
|
-
return undefined;
|
|
99
|
-
const internalInventoryItem = {
|
|
100
|
-
createdAt: inventoryItem.createdAt,
|
|
101
|
-
id: inventoryItem.id,
|
|
102
|
-
legacyResourceId: inventoryItem.legacyResourceId,
|
|
103
|
-
requiresShipping: inventoryItem.requiresShipping,
|
|
104
|
-
sku: inventoryItem.sku,
|
|
105
|
-
tracked: inventoryItem.tracked,
|
|
106
|
-
unitCost: ShopifyGraphQLTransformer.buildUnitCost(inventoryItem),
|
|
107
|
-
unitCostCurrency: inventoryItem.unitCost?.currencyCode,
|
|
108
|
-
updatedAt: inventoryItem.updatedAt,
|
|
109
|
-
};
|
|
110
|
-
return internalInventoryItem;
|
|
111
|
-
},
|
|
112
|
-
buildUnitCost: (inventoryItem) => {
|
|
113
|
-
try {
|
|
114
|
-
const unitCost = inventoryItem.unitCost?.amount;
|
|
115
|
-
if (typeof unitCost === 'number') {
|
|
116
|
-
return unitCost;
|
|
117
|
-
}
|
|
118
|
-
else if (typeof unitCost === 'string') {
|
|
119
|
-
return Number(unitCost);
|
|
120
|
-
}
|
|
121
|
-
return undefined;
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
};
|
|
1
|
+
export const ShopifyGraphQLTransformer = {
|
|
2
|
+
transformToInternalProduct: (product) => {
|
|
3
|
+
if (!product)
|
|
4
|
+
return undefined;
|
|
5
|
+
const internalProduct = {
|
|
6
|
+
id: product?.id,
|
|
7
|
+
legacyResourceId: Number(product.legacyResourceId),
|
|
8
|
+
title: product.title,
|
|
9
|
+
description: product.description,
|
|
10
|
+
handle: product?.handle,
|
|
11
|
+
productType: product?.productType,
|
|
12
|
+
vendor: product.vendor,
|
|
13
|
+
status: product.status,
|
|
14
|
+
createdAt: product.createdAt,
|
|
15
|
+
updatedAt: product.updatedAt,
|
|
16
|
+
publishedAt: product.publishedAt,
|
|
17
|
+
hasOnlyDefaultVariant: product?.hasOnlyDefaultVariant ?? false,
|
|
18
|
+
hasOutOfStockVariants: product?.hasOutOfStockVariants ?? false,
|
|
19
|
+
hasVariantsThatRequiresComponents: product?.hasVariantsThatRequiresComponents ?? false,
|
|
20
|
+
isGiftCard: product?.isGiftCard ?? false,
|
|
21
|
+
onlineStoreUrl: product.onlineStoreUrl,
|
|
22
|
+
onlineStorePreviewUrl: product.onlineStorePreviewUrl,
|
|
23
|
+
tags: product.tags || [],
|
|
24
|
+
totalInventory: product.totalInventory || 0,
|
|
25
|
+
tracksInventory: product.tracksInventory || false,
|
|
26
|
+
featuredImageUrl: product.featuredMedia?.preview?.image?.url,
|
|
27
|
+
images: product.media?.nodes?.map(image => image.preview?.image?.url) || [],
|
|
28
|
+
variantsCount: product?.variantsCount?.count,
|
|
29
|
+
maxVariantCompareAtPrice: Number(product.compareAtPriceRange?.maxVariantCompareAtPrice?.amount || 0),
|
|
30
|
+
minVariantCompareAtPrice: Number(product.compareAtPriceRange?.minVariantCompareAtPrice?.amount || 0),
|
|
31
|
+
maxVariantPrice: Number(product.priceRangeV2?.maxVariantPrice?.amount || 0),
|
|
32
|
+
minVariantPrice: Number(product.priceRangeV2?.minVariantPrice?.amount || 0),
|
|
33
|
+
currency: product.priceRangeV2?.minVariantPrice?.currencyCode || product.priceRangeV2?.maxVariantPrice?.currencyCode,
|
|
34
|
+
media: product?.media?.nodes?.map(media => ({
|
|
35
|
+
id: media.id,
|
|
36
|
+
mediaContentType: media.mediaContentType,
|
|
37
|
+
status: media.status,
|
|
38
|
+
previewImageUrl: media.preview?.image?.url
|
|
39
|
+
})) || [],
|
|
40
|
+
variants: product?.variants?.nodes
|
|
41
|
+
?.map(variant => ShopifyGraphQLTransformer.transformToInternalProductVariant(variant))
|
|
42
|
+
.filter(variant => variant !== undefined) || [],
|
|
43
|
+
collections: product.collections?.nodes?.map(collection => ({
|
|
44
|
+
id: collection.id,
|
|
45
|
+
legacyResourceId: Number(collection.legacyResourceId),
|
|
46
|
+
title: collection.title,
|
|
47
|
+
handle: collection.handle,
|
|
48
|
+
imageUrl: collection.image?.url,
|
|
49
|
+
productsCount: collection.productsCount
|
|
50
|
+
})) || [],
|
|
51
|
+
category: product.category ? {
|
|
52
|
+
id: product.category.id,
|
|
53
|
+
name: product.category.name,
|
|
54
|
+
fullName: product.category.fullName,
|
|
55
|
+
ancestorIds: product.category.ancestorIds,
|
|
56
|
+
childrenIds: product.category.childrenIds,
|
|
57
|
+
} : undefined,
|
|
58
|
+
seoTitle: product.seo?.title,
|
|
59
|
+
seoDescription: product.seo?.description,
|
|
60
|
+
};
|
|
61
|
+
return internalProduct;
|
|
62
|
+
},
|
|
63
|
+
transformToInternalProductVariant: (variant) => {
|
|
64
|
+
if (!variant)
|
|
65
|
+
return undefined;
|
|
66
|
+
const internalVariant = {
|
|
67
|
+
availableForSale: variant.availableForSale || false,
|
|
68
|
+
id: variant.id,
|
|
69
|
+
legacyResourceId: variant?.legacyResourceId,
|
|
70
|
+
title: variant.title,
|
|
71
|
+
displayName: variant.displayName,
|
|
72
|
+
sku: variant?.sku,
|
|
73
|
+
barcode: variant?.barcode,
|
|
74
|
+
price: variant.price,
|
|
75
|
+
amount: Number(variant.price || 0),
|
|
76
|
+
compareAtPrice: variant.compareAtPrice,
|
|
77
|
+
createdAt: variant.createdAt,
|
|
78
|
+
updatedAt: variant.updatedAt,
|
|
79
|
+
position: variant.position || 0,
|
|
80
|
+
inventoryItem: variant?.inventoryItem ? ShopifyGraphQLTransformer.transformToInternalInventoryItem(variant.inventoryItem) : undefined,
|
|
81
|
+
inventoryPolicy: variant?.inventoryPolicy,
|
|
82
|
+
inventoryQuantity: variant?.inventoryQuantity,
|
|
83
|
+
sellableOnlineQuantity: variant.sellableOnlineQuantity || 0,
|
|
84
|
+
taxable: variant.taxable || false,
|
|
85
|
+
taxCode: variant?.taxCode,
|
|
86
|
+
productId: variant.product?.id || '',
|
|
87
|
+
legacyProductResourceId: Number(variant.product?.legacyResourceId || 0),
|
|
88
|
+
featuredImageUrl: variant.image?.url,
|
|
89
|
+
selectedOptions: variant.selectedOptions?.map(option => ({
|
|
90
|
+
name: option.name,
|
|
91
|
+
value: option.value
|
|
92
|
+
})) || [],
|
|
93
|
+
};
|
|
94
|
+
return internalVariant;
|
|
95
|
+
},
|
|
96
|
+
transformToInternalInventoryItem: (inventoryItem) => {
|
|
97
|
+
if (!inventoryItem)
|
|
98
|
+
return undefined;
|
|
99
|
+
const internalInventoryItem = {
|
|
100
|
+
createdAt: inventoryItem.createdAt,
|
|
101
|
+
id: inventoryItem.id,
|
|
102
|
+
legacyResourceId: inventoryItem.legacyResourceId,
|
|
103
|
+
requiresShipping: inventoryItem.requiresShipping,
|
|
104
|
+
sku: inventoryItem.sku,
|
|
105
|
+
tracked: inventoryItem.tracked,
|
|
106
|
+
unitCost: ShopifyGraphQLTransformer.buildUnitCost(inventoryItem),
|
|
107
|
+
unitCostCurrency: inventoryItem.unitCost?.currencyCode,
|
|
108
|
+
updatedAt: inventoryItem.updatedAt,
|
|
109
|
+
};
|
|
110
|
+
return internalInventoryItem;
|
|
111
|
+
},
|
|
112
|
+
buildUnitCost: (inventoryItem) => {
|
|
113
|
+
try {
|
|
114
|
+
const unitCost = inventoryItem.unitCost?.amount;
|
|
115
|
+
if (typeof unitCost === 'number') {
|
|
116
|
+
return unitCost;
|
|
117
|
+
}
|
|
118
|
+
else if (typeof unitCost === 'string') {
|
|
119
|
+
return Number(unitCost);
|
|
120
|
+
}
|
|
121
|
+
return undefined;
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
128
|
//# sourceMappingURL=shopify-graphql-transformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './product.js';
|
|
1
|
+
export * from './product.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './product.js';
|
|
1
|
+
export * from './product.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|