@infrab4a/connect 4.0.0-beta.50 → 4.0.0-beta.7
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/domain/catalog/index.d.ts +0 -1
- package/domain/catalog/models/category.d.ts +22 -5
- package/domain/catalog/models/index.d.ts +0 -5
- package/domain/catalog/models/kit-product.d.ts +4 -4
- package/domain/catalog/models/product.d.ts +35 -5
- package/domain/catalog/models/types/category-filter.type.d.ts +4 -0
- package/domain/catalog/models/types/index.d.ts +1 -2
- package/domain/catalog/models/types/shop-description.type.d.ts +0 -1
- package/domain/catalog/models/variant.d.ts +2 -1
- package/domain/catalog/repositories/category.repository.d.ts +3 -6
- package/domain/catalog/repositories/index.d.ts +0 -5
- package/domain/catalog/repositories/product.repository.d.ts +1 -4
- package/domain/generic/model/base.model.d.ts +5 -9
- package/domain/generic/model/types/base-model-builder.type.d.ts +2 -4
- package/domain/generic/model/types/identifier-model.type.d.ts +5 -6
- package/domain/generic/model/types/model-base-structure.type.d.ts +3 -9
- package/domain/generic/model/types/non-function-property-name.type.d.ts +3 -12
- package/domain/generic/repository/find.repository.d.ts +1 -7
- package/domain/generic/repository/get.repository.d.ts +2 -2
- package/domain/generic/repository/types/repository-find-filters.type.d.ts +3 -3
- package/domain/generic/repository/types/repository-find-result.type.d.ts +1 -11
- package/domain/generic/repository/types/repository-order-by-list.type.d.ts +2 -2
- package/domain/generic/repository/types/repository-update-params.type.d.ts +2 -2
- package/domain/location/models/address.d.ts +3 -5
- package/domain/shop-settings/models/index.d.ts +0 -1
- package/domain/shop-settings/models/types/index.d.ts +1 -6
- package/domain/shop-settings/repositories/index.d.ts +0 -1
- package/domain/shopping/models/buy-2-win.d.ts +1 -3
- package/domain/shopping/models/checkout.d.ts +6 -5
- package/domain/shopping/models/coupons/coupon.d.ts +6 -34
- package/domain/shopping/models/index.d.ts +4 -5
- package/domain/shopping/models/order.d.ts +0 -1
- package/domain/shopping/models/shipping-method.d.ts +0 -1
- package/domain/shopping/models/subscription/checkout.d.ts +4 -3
- package/domain/shopping/repositories/index.d.ts +2 -4
- package/domain/users/models/lead.d.ts +0 -1
- package/domain/users/models/subscription/subscription.d.ts +3 -3
- package/domain/users/models/user-address.d.ts +2 -1
- package/domain/users/models/user.d.ts +3 -2
- package/esm2020/domain/catalog/index.mjs +1 -2
- package/esm2020/domain/catalog/models/category.mjs +6 -10
- package/esm2020/domain/catalog/models/index.mjs +1 -6
- package/esm2020/domain/catalog/models/kit-product.mjs +7 -7
- package/esm2020/domain/catalog/models/product.mjs +6 -8
- package/esm2020/domain/catalog/models/types/category-filter.type.mjs +2 -0
- package/esm2020/domain/catalog/models/types/index.mjs +2 -3
- package/esm2020/domain/catalog/models/types/shop-description.type.mjs +1 -1
- package/esm2020/domain/catalog/models/variant.mjs +4 -1
- package/esm2020/domain/catalog/repositories/category.repository.mjs +1 -1
- package/esm2020/domain/catalog/repositories/index.mjs +1 -6
- package/esm2020/domain/catalog/repositories/product.repository.mjs +1 -1
- package/esm2020/domain/generic/model/base.model.mjs +2 -3
- package/esm2020/domain/generic/model/types/base-model-builder.type.mjs +1 -1
- package/esm2020/domain/generic/model/types/identifier-model.type.mjs +1 -1
- package/esm2020/domain/generic/model/types/model-base-structure.type.mjs +1 -1
- package/esm2020/domain/generic/model/types/non-function-property-name.type.mjs +1 -1
- package/esm2020/domain/generic/repository/find.repository.mjs +1 -1
- package/esm2020/domain/generic/repository/get.repository.mjs +1 -1
- package/esm2020/domain/generic/repository/types/repository-find-filters.type.mjs +1 -1
- package/esm2020/domain/generic/repository/types/repository-find-result.type.mjs +1 -1
- package/esm2020/domain/generic/repository/types/repository-order-by-list.type.mjs +1 -1
- package/esm2020/domain/generic/repository/types/repository-update-params.type.mjs +1 -1
- package/esm2020/domain/location/models/address.mjs +2 -2
- package/esm2020/domain/shop-settings/models/index.mjs +1 -2
- package/esm2020/domain/shop-settings/models/types/index.mjs +2 -7
- package/esm2020/domain/shop-settings/repositories/index.mjs +1 -2
- package/esm2020/domain/shopping/models/buy-2-win.mjs +2 -2
- package/esm2020/domain/shopping/models/checkout.mjs +7 -6
- package/esm2020/domain/shopping/models/coupons/coupon.mjs +16 -16
- package/esm2020/domain/shopping/models/index.mjs +5 -6
- package/esm2020/domain/shopping/models/order.mjs +1 -1
- package/esm2020/domain/shopping/models/shipping-method.mjs +1 -1
- package/esm2020/domain/shopping/models/subscription/checkout.mjs +6 -6
- package/esm2020/domain/shopping/repositories/index.mjs +3 -5
- package/esm2020/domain/users/models/lead.mjs +1 -1
- package/esm2020/domain/users/models/subscription/subscription.mjs +6 -6
- package/esm2020/domain/users/models/user-address.mjs +1 -1
- package/esm2020/domain/users/models/user.mjs +2 -2
- package/esm2020/domain/users/use-cases/authentication.mjs +2 -2
- package/esm2020/infra/elasticsearch/adapters/axios.adapter.mjs +11 -28
- package/esm2020/infra/elasticsearch/adapters/elastic-search.adapter.mjs +1 -1
- package/esm2020/infra/elasticsearch/indexes/products-index.mjs +51 -63
- package/esm2020/infra/elasticsearch/types/elastic-search-result.mjs +1 -1
- package/esm2020/infra/firebase/auth/authentication-firebase-auth.service.mjs +1 -1
- package/esm2020/infra/firebase/firestore/mixins/with-create-firestore.mixin.mjs +4 -8
- package/esm2020/infra/firebase/firestore/mixins/with-crud-firestore.mixin.mjs +1 -1
- package/esm2020/infra/firebase/firestore/mixins/with-delete-firestore.mixin.mjs +2 -6
- package/esm2020/infra/firebase/firestore/mixins/with-find-firestore.mixin.mjs +8 -11
- package/esm2020/infra/firebase/firestore/mixins/with-firestore.mixin.mjs +4 -27
- package/esm2020/infra/firebase/firestore/mixins/with-get-firestore.mixin.mjs +3 -6
- package/esm2020/infra/firebase/firestore/mixins/with-helpers.mixin.mjs +1 -1
- package/esm2020/infra/firebase/firestore/mixins/with-sub-collection.mixin.mjs +3 -5
- package/esm2020/infra/firebase/firestore/mixins/with-update-firestore.mixin.mjs +4 -7
- package/esm2020/infra/firebase/firestore/repositories/catalog/category-firestore.repository.mjs +8 -21
- package/esm2020/infra/firebase/firestore/repositories/catalog/product-firestore.repository.mjs +7 -15
- package/esm2020/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.mjs +8 -10
- package/esm2020/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.mjs +30 -36
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/index.mjs +1 -2
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/shopping/index.mjs +4 -6
- package/esm2020/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.mjs +4 -6
- package/esm2020/infra/firebase/firestore/repositories/shopping/order-firestore.repository.mjs +9 -11
- package/esm2020/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/users/lead-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.mjs +8 -10
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.mjs +8 -10
- package/esm2020/infra/firebase/firestore/repositories/users/user-address-firestore.repository.mjs +8 -10
- package/esm2020/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.mjs +8 -10
- package/esm2020/infra/firebase/firestore/repositories/users/user-firestore.repository.mjs +6 -8
- package/esm2020/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.mjs +8 -10
- package/esm2020/infra/firebase/firestore/types/firestore-sub.repository.type.mjs +1 -1
- package/esm2020/infra/firebase/firestore/types/firestore.helpers.type.mjs +1 -1
- package/esm2020/infra/firebase/firestore/types/firestore.repository.type.mjs +1 -1
- package/esm2020/infra/firebase/firestore/types/index.mjs +3 -4
- package/esm2020/infra/hasura-graphql/mixins/helpers/attribute-option.helper.mjs +3 -3
- package/esm2020/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.mjs +5 -6
- package/esm2020/infra/hasura-graphql/mixins/helpers/filter-option.helper.mjs +1 -1
- package/esm2020/infra/hasura-graphql/mixins/helpers/graphql-field.helper.mjs +25 -36
- package/esm2020/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.mjs +4 -6
- package/esm2020/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.mjs +1 -1
- package/esm2020/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.mjs +3 -5
- package/esm2020/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.mjs +20 -126
- package/esm2020/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.mjs +3 -5
- package/esm2020/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.mjs +24 -40
- package/esm2020/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.mjs +5 -7
- package/esm2020/infra/hasura-graphql/models/product-hasura-graphql.mjs +1 -1
- package/esm2020/infra/hasura-graphql/models/variant-hasura-graphql.mjs +1 -1
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.mjs +14 -131
- package/esm2020/infra/hasura-graphql/repositories/catalog/index.mjs +1 -6
- package/esm2020/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.mjs +20 -70
- package/esm2020/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.mjs +7 -9
- package/esm2020/infra/hasura-graphql/types/graphql.repository.type.mjs +1 -1
- package/esm2020/infra/hasura-graphql/types/hasura-graphql-fields.type.mjs +1 -1
- package/esm2020/utils/index.mjs +3 -6
- package/fesm2015/infrab4a-connect.mjs +422 -2001
- package/fesm2015/infrab4a-connect.mjs.map +1 -1
- package/fesm2020/infrab4a-connect.mjs +422 -1965
- package/fesm2020/infrab4a-connect.mjs.map +1 -1
- package/infra/elasticsearch/adapters/axios.adapter.d.ts +5 -7
- package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +2 -3
- package/infra/elasticsearch/indexes/products-index.d.ts +10 -8
- package/infra/elasticsearch/types/elastic-search-result.d.ts +0 -2
- package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +2 -2
- package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +1 -2
- package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +2 -2
- package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +2 -2
- package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +4 -13
- package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +2 -2
- package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +2 -2
- package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +4 -8
- package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +3 -3
- package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +5 -8
- package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +5 -6
- package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +4 -4
- package/infra/firebase/firestore/repositories/shop-settings/index.d.ts +0 -1
- package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +4 -4
- package/infra/firebase/firestore/repositories/shopping/index.d.ts +3 -5
- package/infra/firebase/firestore/repositories/shopping/legacy-order-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +4 -4
- package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +4 -4
- package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +4 -3
- package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +3 -3
- package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +5 -5
- package/infra/firebase/firestore/types/firestore.repository.type.d.ts +1 -3
- package/infra/firebase/firestore/types/index.d.ts +2 -3
- package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +3 -9
- package/infra/hasura-graphql/mixins/helpers/bind-filter-query.helper.d.ts +5 -5
- package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +2 -4
- package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +5 -9
- package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +1 -2
- package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +3 -3
- package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +1 -1
- package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +15 -24
- package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +6 -7
- package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +3 -15
- package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +2 -2
- package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +0 -4
- package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +0 -1
- package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +5 -12
- package/infra/hasura-graphql/repositories/catalog/index.d.ts +0 -5
- package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +4 -6
- package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +4 -4
- package/infra/hasura-graphql/types/graphql.repository.type.d.ts +6 -9
- package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +3 -7
- package/package.json +1 -2
- package/utils/index.d.ts +2 -5
- package/domain/catalog/helpers/index.d.ts +0 -1
- package/domain/catalog/helpers/round-product-price.helper.d.ts +0 -4
- package/domain/catalog/models/category-base.d.ts +0 -30
- package/domain/catalog/models/category-collection-children.d.ts +0 -13
- package/domain/catalog/models/category-filter.d.ts +0 -13
- package/domain/catalog/models/category-for-product.d.ts +0 -5
- package/domain/catalog/models/filter-option.d.ts +0 -9
- package/domain/catalog/models/filter.d.ts +0 -12
- package/domain/catalog/models/product-base.d.ts +0 -40
- package/domain/catalog/models/product-for-category.d.ts +0 -7
- package/domain/catalog/models/product-for-kit.d.ts +0 -7
- package/domain/catalog/models/types/category-product.d.ts +0 -4
- package/domain/catalog/models/types/product-evaluation.type.d.ts +0 -6
- package/domain/catalog/models/wishlist.d.ts +0 -6
- package/domain/catalog/repositories/category-collection-children.repository.d.ts +0 -4
- package/domain/catalog/repositories/category-filter.repository.d.ts +0 -6
- package/domain/catalog/repositories/filter-option.repository.d.ts +0 -4
- package/domain/catalog/repositories/filter.repository.d.ts +0 -4
- package/domain/catalog/repositories/wishlist.repository.d.ts +0 -6
- package/domain/shop-settings/models/shop-settings.d.ts +0 -9
- package/domain/shop-settings/models/types/shop-banner.type.d.ts +0 -12
- package/domain/shop-settings/models/types/shop-brands.type.d.ts +0 -10
- package/domain/shop-settings/models/types/shop-carousel.type.d.ts +0 -5
- package/domain/shop-settings/models/types/shop-collection.type.d.ts +0 -9
- package/domain/shop-settings/models/types/shop-section.type.d.ts +0 -9
- package/domain/shop-settings/repositories/shop-settings.repository.d.ts +0 -4
- package/domain/shopping/models/campaign-dashboard.d.ts +0 -15
- package/domain/shopping/models/campaign-hashtag.d.ts +0 -18
- package/domain/shopping/repositories/campaign-dashboard.repository.d.ts +0 -4
- package/domain/shopping/repositories/campaign-hashtag.repository.d.ts +0 -4
- package/esm2020/domain/catalog/helpers/index.mjs +0 -2
- package/esm2020/domain/catalog/helpers/round-product-price.helper.mjs +0 -15
- package/esm2020/domain/catalog/models/category-base.mjs +0 -18
- package/esm2020/domain/catalog/models/category-collection-children.mjs +0 -13
- package/esm2020/domain/catalog/models/category-filter.mjs +0 -19
- package/esm2020/domain/catalog/models/category-for-product.mjs +0 -7
- package/esm2020/domain/catalog/models/filter-option.mjs +0 -7
- package/esm2020/domain/catalog/models/filter.mjs +0 -7
- package/esm2020/domain/catalog/models/product-base.mjs +0 -25
- package/esm2020/domain/catalog/models/product-for-category.mjs +0 -14
- package/esm2020/domain/catalog/models/product-for-kit.mjs +0 -14
- package/esm2020/domain/catalog/models/types/category-product.mjs +0 -2
- package/esm2020/domain/catalog/models/types/product-evaluation.type.mjs +0 -2
- package/esm2020/domain/catalog/models/wishlist.mjs +0 -7
- package/esm2020/domain/catalog/repositories/category-collection-children.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/category-filter.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/filter-option.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/filter.repository.mjs +0 -2
- package/esm2020/domain/catalog/repositories/wishlist.repository.mjs +0 -2
- package/esm2020/domain/shop-settings/models/shop-settings.mjs +0 -7
- package/esm2020/domain/shop-settings/models/types/shop-banner.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-brands.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-carousel.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-collection.type.mjs +0 -2
- package/esm2020/domain/shop-settings/models/types/shop-section.type.mjs +0 -2
- package/esm2020/domain/shop-settings/repositories/shop-settings.repository.mjs +0 -2
- package/esm2020/domain/shopping/models/campaign-dashboard.mjs +0 -7
- package/esm2020/domain/shopping/models/campaign-hashtag.mjs +0 -7
- package/esm2020/domain/shopping/repositories/campaign-dashboard.repository.mjs +0 -2
- package/esm2020/domain/shopping/repositories/campaign-hashtag.repository.mjs +0 -2
- package/esm2020/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.mjs +0 -14
- package/esm2020/infra/firebase/firestore/types/firestore-interceptors.type.mjs +0 -2
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.mjs +0 -39
- package/esm2020/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.mjs +0 -107
- package/esm2020/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.mjs +0 -105
- package/esm2020/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.mjs +0 -22
- package/esm2020/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.mjs +0 -236
- package/esm2020/utils/decorators/debug.class.decorator.mjs +0 -7
- package/esm2020/utils/decorators/index.mjs +0 -3
- package/esm2020/utils/decorators/trace.method.decorator.mjs +0 -81
- package/esm2020/utils/helpers/class-name.helper.mjs +0 -15
- package/esm2020/utils/helpers/debug-decorator.helper.mjs +0 -18
- package/esm2020/utils/helpers/debug.helper.mjs +0 -150
- package/esm2020/utils/helpers/index.mjs +0 -5
- package/esm2020/utils/helpers/reflect.helper.mjs +0 -165
- package/esm2020/utils/log.utils.mjs +0 -9
- package/infra/firebase/firestore/repositories/shop-settings/shop-settings-firestore.repository.d.ts +0 -7
- package/infra/firebase/firestore/repositories/shopping/campaign-dashboard-firestore.repository.d.ts +0 -8
- package/infra/firebase/firestore/repositories/shopping/campaign-hashtag-firestore.repository.d.ts +0 -8
- package/infra/firebase/firestore/types/firestore-interceptors.type.d.ts +0 -14
- package/infra/hasura-graphql/repositories/catalog/category-collection-children-hasura-graphql.repository.d.ts +0 -10
- package/infra/hasura-graphql/repositories/catalog/category-filter-hasura-graphql.repository.d.ts +0 -12
- package/infra/hasura-graphql/repositories/catalog/filter-hasura-graphql.repository.d.ts +0 -18
- package/infra/hasura-graphql/repositories/catalog/filter-option-hasura-graphql.repository.d.ts +0 -10
- package/infra/hasura-graphql/repositories/catalog/wishlist-hasura-graphql.repository.d.ts +0 -27
- package/utils/decorators/debug.class.decorator.d.ts +0 -2
- package/utils/decorators/index.d.ts +0 -2
- package/utils/decorators/trace.method.decorator.d.ts +0 -14
- package/utils/helpers/class-name.helper.d.ts +0 -3
- package/utils/helpers/debug-decorator.helper.d.ts +0 -9
- package/utils/helpers/debug.helper.d.ts +0 -60
- package/utils/helpers/index.d.ts +0 -4
- package/utils/helpers/reflect.helper.d.ts +0 -50
- package/utils/log.utils.d.ts +0 -7
|
@@ -3,21 +3,19 @@ import { plainToInstance, instanceToPlain, Expose, Type } from 'class-transforme
|
|
|
3
3
|
import { __decorate, __metadata, __awaiter, __rest } from 'tslib';
|
|
4
4
|
import { parseISO } from 'date-fns';
|
|
5
5
|
export { add, addBusinessDays, addDays, addMonths, addYears, endOfDay, format, formatISO9075, parseISO, startOfDay, sub } from 'date-fns';
|
|
6
|
-
import {
|
|
7
|
-
export { chunk,
|
|
8
|
-
import { Subject } from 'rxjs';
|
|
9
|
-
import { debug } from 'debug';
|
|
6
|
+
import { get as get$1, isString, isNil, isNumber, isDate, set, isObject, isEmpty, chunk, isBoolean, isInteger, isNaN as isNaN$1, omit } from 'lodash';
|
|
7
|
+
export { chunk, isBoolean, isDate, isEmpty, isInteger, isNaN, isNil, isNumber, isObject, isString, now, omit, pick, set } from 'lodash';
|
|
10
8
|
import { CustomError } from 'ts-custom-error';
|
|
11
9
|
import axios from 'axios';
|
|
12
10
|
import { collection, getDoc, doc, where, orderBy, getDocs, query, startAfter, startAt, limit, addDoc, setDoc, deleteField, arrayUnion, arrayRemove, deleteDoc, Timestamp } from 'firebase/firestore';
|
|
13
11
|
import { signInWithEmailAndPassword, signInWithPopup, GoogleAuthProvider, signInAnonymously, sendPasswordResetEmail, createUserWithEmailAndPassword, sendEmailVerification } from 'firebase/auth';
|
|
14
12
|
import { mutation, query as query$1 } from 'gql-query-builder';
|
|
13
|
+
import fetch from 'node-fetch';
|
|
15
14
|
|
|
16
15
|
class BaseModel {
|
|
17
16
|
get identifier() {
|
|
18
17
|
const fields = this.constructor.identifiersFields.filter((field) => field !== 'identifier');
|
|
19
|
-
|
|
20
|
-
return fields.reduce((object, field) => (Object.assign(Object.assign({}, object), { [field]: data[field] })), {});
|
|
18
|
+
return fields.reduce((object, field) => (Object.assign(Object.assign({}, object), { [field]: this[field] })), {});
|
|
21
19
|
}
|
|
22
20
|
get identifiersFields() {
|
|
23
21
|
return this.constructor.identifiersFields;
|
|
@@ -463,437 +461,11 @@ __decorate([
|
|
|
463
461
|
__metadata("design:type", Payment)
|
|
464
462
|
], SubscriptionPayment.prototype, "payment", void 0);
|
|
465
463
|
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
DebugNamespaces["TRACE"] = "trace";
|
|
470
|
-
DebugNamespaces["ERROR"] = "error";
|
|
471
|
-
})(DebugNamespaces || (DebugNamespaces = {}));
|
|
472
|
-
const Logger = debug(DebugNamespaces.ROOT);
|
|
473
|
-
|
|
474
|
-
class ReflectHelper {
|
|
475
|
-
static get items() {
|
|
476
|
-
return this._items;
|
|
477
|
-
}
|
|
478
|
-
static get keys() {
|
|
479
|
-
return Object.keys(ReflectHelper.items);
|
|
480
|
-
}
|
|
481
|
-
static has(key, target, property) {
|
|
482
|
-
return (!isNil(key) &&
|
|
483
|
-
!isNil(ReflectHelper.items[key]) &&
|
|
484
|
-
(isNil(target) ||
|
|
485
|
-
(!isNil(ReflectHelper.items[key][target]) &&
|
|
486
|
-
(isNil(property) || !isNil(ReflectHelper.items[key][target][String(property)])))));
|
|
487
|
-
}
|
|
488
|
-
static get({ key, target, property, own = true }) {
|
|
489
|
-
try {
|
|
490
|
-
if (own) {
|
|
491
|
-
return Reflect.getOwnMetadata(key, target, property) || null;
|
|
492
|
-
}
|
|
493
|
-
else {
|
|
494
|
-
return Reflect.getMetadata(key, target, property) || null;
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
catch (_err) {
|
|
498
|
-
return null;
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
static first({ key, target, property, own = true }) {
|
|
502
|
-
const values = ReflectHelper.get({ key, target, property, own });
|
|
503
|
-
return isArray(values) ? first(values) : values;
|
|
504
|
-
}
|
|
505
|
-
static last({ key, target, property, own = true }) {
|
|
506
|
-
const values = ReflectHelper.get({ key, target, property, own });
|
|
507
|
-
return isArray(values) ? last(values) : values;
|
|
508
|
-
}
|
|
509
|
-
static set({ key, target, property, value, propertyDescriptor }) {
|
|
510
|
-
Reflect.defineMetadata(key, value, target, property);
|
|
511
|
-
ReflectHelper.put({ key, target, property, value, propertyDescriptor });
|
|
512
|
-
}
|
|
513
|
-
static add({ key, target, property, value, propertyDescriptor }) {
|
|
514
|
-
let values = ReflectHelper.get({ key, target, property }) || new Array();
|
|
515
|
-
if (!Array.isArray(values))
|
|
516
|
-
values = [values];
|
|
517
|
-
values.push(value);
|
|
518
|
-
ReflectHelper.set({ key, target, property, value: values, propertyDescriptor });
|
|
519
|
-
}
|
|
520
|
-
static all({ key }) {
|
|
521
|
-
const items = ReflectHelper.items[key] || {};
|
|
522
|
-
return flatten(Object.keys(items).map((item) => flatten(this.allFrom(key, items[item]))));
|
|
523
|
-
}
|
|
524
|
-
static allFrom(key, target) {
|
|
525
|
-
return Object.keys(target)
|
|
526
|
-
.filter((property) => property !== 'object')
|
|
527
|
-
.map((property) => this.allValuesFrom(key, target, property));
|
|
528
|
-
}
|
|
529
|
-
static allValuesFrom(key, target, property) {
|
|
530
|
-
const values = target[property];
|
|
531
|
-
let value = values.value;
|
|
532
|
-
const propertyDescriptor = values.propertyDescriptor;
|
|
533
|
-
if (!isArray(value))
|
|
534
|
-
value = [value];
|
|
535
|
-
return flatten(value.map((val) => {
|
|
536
|
-
return {
|
|
537
|
-
key,
|
|
538
|
-
target: target.object,
|
|
539
|
-
property,
|
|
540
|
-
value: val,
|
|
541
|
-
propertyDescriptor,
|
|
542
|
-
};
|
|
543
|
-
}));
|
|
544
|
-
}
|
|
545
|
-
static delete({ key, target, property }) {
|
|
546
|
-
Reflect.deleteMetadata(key, target, property);
|
|
547
|
-
return ReflectHelper.remove(key, target, property);
|
|
548
|
-
}
|
|
549
|
-
static clear(key) {
|
|
550
|
-
if (!key) {
|
|
551
|
-
ReflectHelper.keys.forEach((storedKey) => {
|
|
552
|
-
ReflectHelper.clear(storedKey);
|
|
553
|
-
});
|
|
554
|
-
}
|
|
555
|
-
else {
|
|
556
|
-
if (ReflectHelper.keys.includes(key)) {
|
|
557
|
-
Object.values(ReflectHelper.items[key]).forEach((target) => {
|
|
558
|
-
if (ReflectHelper.has(key, target)) {
|
|
559
|
-
Object.values(ReflectHelper.items[key][target.toString()]).forEach((property) => {
|
|
560
|
-
ReflectHelper.delete({
|
|
561
|
-
key,
|
|
562
|
-
target: target.object,
|
|
563
|
-
property: String(property),
|
|
564
|
-
});
|
|
565
|
-
ReflectHelper.remove(key, target, String(property));
|
|
566
|
-
});
|
|
567
|
-
}
|
|
568
|
-
ReflectHelper.delete({ key, target: target.object });
|
|
569
|
-
ReflectHelper.remove(key, target);
|
|
570
|
-
});
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
static getType({ target, propertyKey }) {
|
|
575
|
-
return Reflect.getMetadata('design:type', target, propertyKey);
|
|
576
|
-
}
|
|
577
|
-
static getReturntype({ target, propertyKey }) {
|
|
578
|
-
return Reflect.getMetadata('design:returntype', target, propertyKey);
|
|
579
|
-
}
|
|
580
|
-
static getAllMethods(target) {
|
|
581
|
-
const props = [];
|
|
582
|
-
let obj = target;
|
|
583
|
-
do {
|
|
584
|
-
props.push(...Object.getOwnPropertyNames(obj));
|
|
585
|
-
} while ((obj = Object.getPrototypeOf(obj)));
|
|
586
|
-
return props.sort().filter((e, i, arr) => {
|
|
587
|
-
if ([
|
|
588
|
-
'__defineGetter__',
|
|
589
|
-
'__defineSetter__',
|
|
590
|
-
'__lookupGetter__',
|
|
591
|
-
'__lookupSetter__',
|
|
592
|
-
'constructor',
|
|
593
|
-
'hasOwnProperty',
|
|
594
|
-
'isPrototypeOf',
|
|
595
|
-
'propertyIsEnumerable',
|
|
596
|
-
'toLocaleString',
|
|
597
|
-
'toString',
|
|
598
|
-
'valueOf',
|
|
599
|
-
].includes(e))
|
|
600
|
-
return false;
|
|
601
|
-
if (e != arr[i + 1] && typeof target[e] === 'function')
|
|
602
|
-
return true;
|
|
603
|
-
});
|
|
604
|
-
}
|
|
605
|
-
static put({ key, target, property, value, propertyDescriptor }) {
|
|
606
|
-
const index = target.constructor.name;
|
|
607
|
-
ReflectHelper.items[key] = ReflectHelper.items[key] || {};
|
|
608
|
-
ReflectHelper.items[key][index] = ReflectHelper.items[key][index] || {};
|
|
609
|
-
ReflectHelper.items[key][index].object = target;
|
|
610
|
-
if (isNil(property)) {
|
|
611
|
-
ReflectHelper.items[key][index].value = {
|
|
612
|
-
value,
|
|
613
|
-
propertyDescriptor,
|
|
614
|
-
};
|
|
615
|
-
}
|
|
616
|
-
else {
|
|
617
|
-
ReflectHelper.items[key][index][String(property)] = ReflectHelper.items[key][index][String(property)] || {};
|
|
618
|
-
ReflectHelper.items[key][index][String(property)] = {
|
|
619
|
-
value,
|
|
620
|
-
propertyDescriptor,
|
|
621
|
-
};
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
static remove(key, target, property) {
|
|
625
|
-
if (ReflectHelper.has(key, target, property))
|
|
626
|
-
return delete ReflectHelper.items[key][target][String(property)];
|
|
627
|
-
else if (ReflectHelper.has(key, target))
|
|
628
|
-
return delete ReflectHelper.items[key][target];
|
|
629
|
-
else if (ReflectHelper.has(key))
|
|
630
|
-
return delete ReflectHelper.items[key];
|
|
631
|
-
else
|
|
632
|
-
return false;
|
|
633
|
-
}
|
|
634
|
-
}
|
|
635
|
-
ReflectHelper._items = {};
|
|
636
|
-
|
|
637
|
-
class DebugDecoratorHelper {
|
|
638
|
-
static set(target, options) {
|
|
639
|
-
ReflectHelper.add({
|
|
640
|
-
key: DebugDecoratorHelper.DebugNamingMetadataKey,
|
|
641
|
-
target,
|
|
642
|
-
value: options,
|
|
643
|
-
});
|
|
644
|
-
}
|
|
645
|
-
static get(target) {
|
|
646
|
-
return ReflectHelper.first({
|
|
647
|
-
key: DebugDecoratorHelper.DebugNamingMetadataKey,
|
|
648
|
-
target,
|
|
649
|
-
});
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
DebugDecoratorHelper.DebugNamingMetadataKey = 'model:naming:decorator';
|
|
653
|
-
|
|
654
|
-
class ClassNameHelper {
|
|
655
|
-
static get(clazz) {
|
|
656
|
-
if (!clazz)
|
|
657
|
-
return null;
|
|
658
|
-
const prototype = Object.getPrototypeOf(clazz);
|
|
659
|
-
const names = compact([
|
|
660
|
-
get$1(clazz, 'constructor.name'),
|
|
661
|
-
get$1(prototype, 'constructor.name'),
|
|
662
|
-
get$1(prototype, '__proto__.constructor.name'),
|
|
663
|
-
]);
|
|
664
|
-
return names.find((name) => name !== 'class_1');
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
|
|
668
|
-
const isDebuggable = (object) => {
|
|
669
|
-
return 'debug' in object;
|
|
670
|
-
};
|
|
671
|
-
class DebugHelper {
|
|
672
|
-
constructor(...namespace) {
|
|
673
|
-
this.namespaces = new Set();
|
|
674
|
-
this.push(...namespace);
|
|
675
|
-
}
|
|
676
|
-
static namespacesFor(target) {
|
|
677
|
-
if (isNil(target))
|
|
678
|
-
return [];
|
|
679
|
-
const decorator = DebugDecoratorHelper.get(Object.getPrototypeOf(target));
|
|
680
|
-
const namespaces = get$1(decorator, 'namespaces', []);
|
|
681
|
-
const name = get$1(decorator, 'name', ClassNameHelper.get(target));
|
|
682
|
-
return [...namespaces, name];
|
|
683
|
-
}
|
|
684
|
-
static as(...namespaces) {
|
|
685
|
-
return new DebugHelper(...namespaces);
|
|
686
|
-
}
|
|
687
|
-
static for(target, ...namespaces) {
|
|
688
|
-
const targetNamespaces = this.namespacesFor(target);
|
|
689
|
-
return new DebugHelper(...targetNamespaces, ...namespaces);
|
|
690
|
-
}
|
|
691
|
-
static from(target, ...namespaces) {
|
|
692
|
-
if (this.isDebuggable(target)) {
|
|
693
|
-
const debug = target.debug;
|
|
694
|
-
if (namespaces)
|
|
695
|
-
debug.push(...namespaces);
|
|
696
|
-
return debug;
|
|
697
|
-
}
|
|
698
|
-
return DebugHelper.for(target, ...namespaces);
|
|
699
|
-
}
|
|
700
|
-
static clonedFrom(target, ...namespaces) {
|
|
701
|
-
if (this.isDebuggable(target)) {
|
|
702
|
-
namespaces.push(...target.debug.entries);
|
|
703
|
-
}
|
|
704
|
-
else if (!isNil(target)) {
|
|
705
|
-
namespaces.push(...this.namespacesFor(target));
|
|
706
|
-
}
|
|
707
|
-
return DebugHelper.for(target, ...namespaces);
|
|
708
|
-
}
|
|
709
|
-
static clone(target, ...namespaces) {
|
|
710
|
-
let original;
|
|
711
|
-
if (this.isDebuggable(target)) {
|
|
712
|
-
original = target.debug;
|
|
713
|
-
namespaces.push(...original.entries);
|
|
714
|
-
}
|
|
715
|
-
return {
|
|
716
|
-
original,
|
|
717
|
-
debug: DebugHelper.for(target, ...namespaces),
|
|
718
|
-
};
|
|
719
|
-
}
|
|
720
|
-
static replace(target, attrs) {
|
|
721
|
-
if (this.isDebuggable(target))
|
|
722
|
-
target.debug = attrs.with;
|
|
723
|
-
}
|
|
724
|
-
static mock(target, ...namespaces) {
|
|
725
|
-
const { original, debug } = DebugHelper.clone(target, ...namespaces);
|
|
726
|
-
DebugHelper.replace(target, { with: debug });
|
|
727
|
-
return { original, debug };
|
|
728
|
-
}
|
|
729
|
-
get entries() {
|
|
730
|
-
return Array.from(get$1(this, 'namespaces', []));
|
|
731
|
-
}
|
|
732
|
-
get namespace() {
|
|
733
|
-
return compact(flatten(this.entries)).join(':');
|
|
734
|
-
}
|
|
735
|
-
log(message, ...args) {
|
|
736
|
-
this.logger(JSON.stringify(message), ...args.map((element) => JSON.stringify(element)));
|
|
737
|
-
DebugHelper.logs$.next({ namespace: this.namespace, message, args });
|
|
738
|
-
return this;
|
|
739
|
-
}
|
|
740
|
-
trace(message, ...args) {
|
|
741
|
-
this.logger.extend(DebugNamespaces.TRACE)(message, ...args);
|
|
742
|
-
DebugHelper.traces$.next({ namespace: this.namespace, message, args });
|
|
743
|
-
return this;
|
|
744
|
-
}
|
|
745
|
-
error(error, ...args) {
|
|
746
|
-
this.logger.extend(DebugNamespaces.ERROR)(JSON.stringify(error), ...args.map((element) => JSON.stringify(element)));
|
|
747
|
-
DebugHelper.errors$.next({ namespace: this.namespace, error, args });
|
|
748
|
-
return this;
|
|
749
|
-
}
|
|
750
|
-
build() {
|
|
751
|
-
this.logger = Logger;
|
|
752
|
-
this.tracer = Logger;
|
|
753
|
-
this.err = Logger;
|
|
754
|
-
this.entries.forEach((namespace) => {
|
|
755
|
-
this.logger = this.logger.extend(namespace);
|
|
756
|
-
this.tracer = this.tracer.extend(namespace);
|
|
757
|
-
this.err = this.err.extend(namespace);
|
|
758
|
-
});
|
|
759
|
-
return this;
|
|
760
|
-
}
|
|
761
|
-
with(...namespace) {
|
|
762
|
-
return new DebugHelper(...this.entries, ...namespace);
|
|
763
|
-
}
|
|
764
|
-
push(...namespace) {
|
|
765
|
-
if (namespace) {
|
|
766
|
-
namespace.filter((item) => Boolean(item)).forEach((item) => this.namespaces.add(item));
|
|
767
|
-
}
|
|
768
|
-
return this.build();
|
|
769
|
-
}
|
|
770
|
-
unshift(...namespace) {
|
|
771
|
-
if (namespace) {
|
|
772
|
-
return this.reset(...namespace, ...this.entries);
|
|
773
|
-
}
|
|
774
|
-
return this;
|
|
775
|
-
}
|
|
776
|
-
reset(...namespace) {
|
|
777
|
-
this.namespaces = new Set(flatten(compact(namespace)));
|
|
778
|
-
return this.build();
|
|
779
|
-
}
|
|
780
|
-
startWith(...namespace) {
|
|
781
|
-
const current = this.namespaces;
|
|
782
|
-
this.namespaces = new Set(flatten([compact(namespace), ...current]));
|
|
783
|
-
return this.build();
|
|
784
|
-
}
|
|
785
|
-
shift() {
|
|
786
|
-
const list = this.entries;
|
|
787
|
-
list.shift();
|
|
788
|
-
return this.reset(...list);
|
|
789
|
-
}
|
|
790
|
-
pop() {
|
|
791
|
-
const list = this.entries;
|
|
792
|
-
list.pop();
|
|
793
|
-
return this.reset(...list);
|
|
794
|
-
}
|
|
795
|
-
clear() {
|
|
796
|
-
return this.reset();
|
|
797
|
-
}
|
|
798
|
-
remove(...namespace) {
|
|
799
|
-
if (namespace) {
|
|
800
|
-
namespace.filter((item) => Boolean(item)).forEach((item) => this.namespaces.delete(item));
|
|
801
|
-
}
|
|
802
|
-
return this.build();
|
|
803
|
-
}
|
|
804
|
-
puts(...args) {
|
|
805
|
-
return [`[${this.namespace}]`, ...args].join(' ');
|
|
464
|
+
class Address extends BaseModel {
|
|
465
|
+
static get identifiersFields() {
|
|
466
|
+
return ['id'];
|
|
806
467
|
}
|
|
807
468
|
}
|
|
808
|
-
DebugHelper.logs$ = new Subject();
|
|
809
|
-
DebugHelper.traces$ = new Subject();
|
|
810
|
-
DebugHelper.errors$ = new Subject();
|
|
811
|
-
DebugHelper.isDebuggable = isDebuggable;
|
|
812
|
-
|
|
813
|
-
function Debug(opts) {
|
|
814
|
-
return function (target) {
|
|
815
|
-
DebugDecoratorHelper.set(target.prototype, opts);
|
|
816
|
-
};
|
|
817
|
-
}
|
|
818
|
-
|
|
819
|
-
const ASYNC_IDENTIFIER = 'async';
|
|
820
|
-
function Log(options = {}) {
|
|
821
|
-
return Trace(Object.assign({ level: 'log' }, options));
|
|
822
|
-
}
|
|
823
|
-
function Trace(options = {}) {
|
|
824
|
-
return function (target, propertyKey, propertyDescriptor) {
|
|
825
|
-
const method = propertyDescriptor.value;
|
|
826
|
-
const isPromise = method.toString().includes(ASYNC_IDENTIFIER);
|
|
827
|
-
const args = {
|
|
828
|
-
options,
|
|
829
|
-
method,
|
|
830
|
-
target,
|
|
831
|
-
propertyKey,
|
|
832
|
-
propertyDescriptor,
|
|
833
|
-
};
|
|
834
|
-
propertyDescriptor.value = isPromise ? promiseTracer(args) : functionTracer(args);
|
|
835
|
-
return propertyDescriptor;
|
|
836
|
-
};
|
|
837
|
-
}
|
|
838
|
-
const traceCall = function ({ target, propertyKey, propertyDescriptor, args }) {
|
|
839
|
-
if (!target.debug)
|
|
840
|
-
target.debug = DebugHelper.for(target, propertyKey);
|
|
841
|
-
return target.debug.push(propertyKey).trace('called', { target, propertyKey, propertyDescriptor, args });
|
|
842
|
-
};
|
|
843
|
-
const promiseTracer = function ({ options, method, propertyKey, propertyDescriptor }) {
|
|
844
|
-
return function (...args) {
|
|
845
|
-
return new Promise((resolve, reject) => {
|
|
846
|
-
const debug = traceCall({ target: this, propertyDescriptor, propertyKey, args });
|
|
847
|
-
if (get$1(options, 'level', '') === 'log') {
|
|
848
|
-
debug.with('params').log(args);
|
|
849
|
-
}
|
|
850
|
-
return method
|
|
851
|
-
.apply(this, args)
|
|
852
|
-
.then((result) => {
|
|
853
|
-
if (options.callbackFn) {
|
|
854
|
-
options.callbackFn({ target: this, result, args, namespace: [propertyKey] });
|
|
855
|
-
}
|
|
856
|
-
if (get$1(options, 'level', '') === 'log') {
|
|
857
|
-
debug.with('returns').log(result === undefined ? 'void' : result);
|
|
858
|
-
}
|
|
859
|
-
return resolve(result);
|
|
860
|
-
})
|
|
861
|
-
.catch((error) => {
|
|
862
|
-
debug.error(error, ...args);
|
|
863
|
-
debug.with('stack').error(error.stack).pop();
|
|
864
|
-
return reject(error);
|
|
865
|
-
})
|
|
866
|
-
.finally(() => {
|
|
867
|
-
return debug.trace('finally', { args }).pop();
|
|
868
|
-
});
|
|
869
|
-
});
|
|
870
|
-
};
|
|
871
|
-
};
|
|
872
|
-
const functionTracer = function ({ options, target, method, propertyKey, propertyDescriptor, }) {
|
|
873
|
-
return function (...args) {
|
|
874
|
-
const debug = traceCall({ target: this || target, propertyDescriptor, propertyKey, args });
|
|
875
|
-
if (get$1(options, 'level', '') === 'log') {
|
|
876
|
-
debug.with('params').log(args);
|
|
877
|
-
}
|
|
878
|
-
let result;
|
|
879
|
-
try {
|
|
880
|
-
result = method.apply(this, args);
|
|
881
|
-
if (options.callbackFn)
|
|
882
|
-
options.callbackFn({ target: this, result, args, namespace: [propertyKey] });
|
|
883
|
-
if (get$1(options, 'level', '') === 'log') {
|
|
884
|
-
debug.with('returns').log(result === undefined ? 'void' : result);
|
|
885
|
-
}
|
|
886
|
-
return result;
|
|
887
|
-
}
|
|
888
|
-
catch (error) {
|
|
889
|
-
debug.error(error, ...args).pop();
|
|
890
|
-
throw error;
|
|
891
|
-
}
|
|
892
|
-
finally {
|
|
893
|
-
debug.trace('finally', { args }).pop();
|
|
894
|
-
}
|
|
895
|
-
};
|
|
896
|
-
};
|
|
897
469
|
|
|
898
470
|
const get = (object, path, defaultValue) => get$1(object, path, defaultValue);
|
|
899
471
|
|
|
@@ -965,28 +537,26 @@ class Coupon extends BaseModel {
|
|
|
965
537
|
static createCoupon(userId) {
|
|
966
538
|
return this.toInstance({
|
|
967
539
|
nickname: `${Date.now()}`,
|
|
540
|
+
type: CouponTypes.ABSOLUTE,
|
|
968
541
|
checkoutType: CheckoutTypes.ECOMMERCE,
|
|
969
|
-
discount:
|
|
970
|
-
subscriber: {
|
|
971
|
-
type: CouponTypes.ABSOLUTE,
|
|
972
|
-
value: 10,
|
|
973
|
-
},
|
|
974
|
-
non_subscriber: {
|
|
975
|
-
type: CouponTypes.ABSOLUTE,
|
|
976
|
-
value: 10,
|
|
977
|
-
},
|
|
978
|
-
subscription: {
|
|
979
|
-
type: CouponTypes.ABSOLUTE,
|
|
980
|
-
value: 10,
|
|
981
|
-
},
|
|
982
|
-
},
|
|
542
|
+
discount: 30,
|
|
983
543
|
user: userId,
|
|
544
|
+
useLimit: 1,
|
|
545
|
+
useLimitPerUser: true,
|
|
984
546
|
createdAt: new Date(Date.now()),
|
|
985
547
|
beginAt: new Date(Date.now()),
|
|
986
548
|
expiresIn: new Date(Date.now() + COUPON_EXPIRATION),
|
|
987
549
|
});
|
|
988
550
|
}
|
|
989
551
|
}
|
|
552
|
+
__decorate([
|
|
553
|
+
Expose({ name: 'checkout_type' }),
|
|
554
|
+
__metadata("design:type", Number)
|
|
555
|
+
], Coupon.prototype, "checkoutType", void 0);
|
|
556
|
+
__decorate([
|
|
557
|
+
Expose({ name: 'exclusivity_type' }),
|
|
558
|
+
__metadata("design:type", Number)
|
|
559
|
+
], Coupon.prototype, "exclusivityType", void 0);
|
|
990
560
|
|
|
991
561
|
class SubscriptionPlan extends BaseModel {
|
|
992
562
|
static get identifiersFields() {
|
|
@@ -1026,18 +596,6 @@ __decorate([
|
|
|
1026
596
|
__metadata("design:type", BeautyProfile)
|
|
1027
597
|
], User.prototype, "beautyProfile", void 0);
|
|
1028
598
|
|
|
1029
|
-
class Address extends BaseModel {
|
|
1030
|
-
static get identifiersFields() {
|
|
1031
|
-
return ['id'];
|
|
1032
|
-
}
|
|
1033
|
-
}
|
|
1034
|
-
|
|
1035
|
-
class UserAddress extends Address {
|
|
1036
|
-
static get identifiersFields() {
|
|
1037
|
-
return ['id', 'userId'];
|
|
1038
|
-
}
|
|
1039
|
-
}
|
|
1040
|
-
|
|
1041
599
|
class Subscription extends BaseModel {
|
|
1042
600
|
static get identifiersFields() {
|
|
1043
601
|
return ['id'];
|
|
@@ -1052,12 +610,12 @@ __decorate([
|
|
|
1052
610
|
__metadata("design:type", SubscriptionPlan)
|
|
1053
611
|
], Subscription.prototype, "subscriptionPlan", void 0);
|
|
1054
612
|
__decorate([
|
|
1055
|
-
Type(() =>
|
|
1056
|
-
__metadata("design:type",
|
|
613
|
+
Type(() => Address),
|
|
614
|
+
__metadata("design:type", Address)
|
|
1057
615
|
], Subscription.prototype, "shippingAddress", void 0);
|
|
1058
616
|
__decorate([
|
|
1059
|
-
Type(() =>
|
|
1060
|
-
__metadata("design:type",
|
|
617
|
+
Type(() => Address),
|
|
618
|
+
__metadata("design:type", Address)
|
|
1061
619
|
], Subscription.prototype, "billingAddress", void 0);
|
|
1062
620
|
__decorate([
|
|
1063
621
|
Type(() => Coupon),
|
|
@@ -1072,6 +630,12 @@ __decorate([
|
|
|
1072
630
|
__metadata("design:type", Array)
|
|
1073
631
|
], Subscription.prototype, "payment", void 0);
|
|
1074
632
|
|
|
633
|
+
class UserAddress extends Address {
|
|
634
|
+
static get identifiersFields() {
|
|
635
|
+
return ['id', 'userId'];
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
|
|
1075
639
|
class UserPaymentMethod extends BaseModel {
|
|
1076
640
|
static get identifiersFields() {
|
|
1077
641
|
return ['id', 'userId'];
|
|
@@ -1104,7 +668,7 @@ class Authentication {
|
|
|
1104
668
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1105
669
|
const method = this.getServiceByMethod(signInMethod);
|
|
1106
670
|
const userAuth = yield this.authService[method]({ email, password });
|
|
1107
|
-
const user = this.userRepository.get(
|
|
671
|
+
const user = this.userRepository.get(userAuth);
|
|
1108
672
|
if (!isNil(user))
|
|
1109
673
|
return user;
|
|
1110
674
|
if (/^.+@b4a.com.br$/.test(userAuth.email))
|
|
@@ -1191,123 +755,14 @@ class RecoveryPassword {
|
|
|
1191
755
|
}
|
|
1192
756
|
}
|
|
1193
757
|
|
|
1194
|
-
class
|
|
1195
|
-
|
|
1196
|
-
return ['id'];
|
|
1197
|
-
}
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
class CategoryBase extends BaseModel {
|
|
1201
|
-
static get identifiersFields() {
|
|
1202
|
-
return ['id'];
|
|
1203
|
-
}
|
|
1204
|
-
}
|
|
1205
|
-
__decorate([
|
|
1206
|
-
Type(() => CategoryBase),
|
|
1207
|
-
__metadata("design:type", CategoryBase)
|
|
1208
|
-
], CategoryBase.prototype, "parent", void 0);
|
|
1209
|
-
__decorate([
|
|
1210
|
-
Type(() => Filter),
|
|
1211
|
-
__metadata("design:type", Array)
|
|
1212
|
-
], CategoryBase.prototype, "filters", void 0);
|
|
1213
|
-
|
|
1214
|
-
class CategoryForProduct extends CategoryBase {
|
|
1215
|
-
static get identifiersFields() {
|
|
1216
|
-
return ['id'];
|
|
1217
|
-
}
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
class ProductBase extends BaseModel {
|
|
1221
|
-
get evaluation() {
|
|
1222
|
-
return {
|
|
1223
|
-
reviews: this.reviews,
|
|
1224
|
-
count: this.reviewsTotal,
|
|
1225
|
-
rating: this.rate,
|
|
1226
|
-
};
|
|
1227
|
-
}
|
|
1228
|
-
set evaluation(evaluation) {
|
|
1229
|
-
if (!evaluation) {
|
|
1230
|
-
this.reviews = null;
|
|
1231
|
-
this.reviewsTotal = null;
|
|
1232
|
-
this.rate = null;
|
|
1233
|
-
return;
|
|
1234
|
-
}
|
|
1235
|
-
this.reviews = evaluation.reviews || this.reviews;
|
|
1236
|
-
this.reviewsTotal = evaluation.count || this.reviewsTotal;
|
|
1237
|
-
this.rate = evaluation.rating || this.rate;
|
|
1238
|
-
}
|
|
1239
|
-
static get identifiersFields() {
|
|
1240
|
-
return ['id'];
|
|
1241
|
-
}
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
class ProductForKit extends ProductBase {
|
|
1245
|
-
static get identifiersFields() {
|
|
1246
|
-
return ['id'];
|
|
1247
|
-
}
|
|
1248
|
-
}
|
|
1249
|
-
__decorate([
|
|
1250
|
-
Type(() => CategoryForProduct),
|
|
1251
|
-
__metadata("design:type", CategoryForProduct)
|
|
1252
|
-
], ProductForKit.prototype, "category", void 0);
|
|
1253
|
-
|
|
1254
|
-
class KitProduct extends BaseModel {
|
|
1255
|
-
static get identifiersFields() {
|
|
1256
|
-
return ['productId', 'kitProductId'];
|
|
1257
|
-
}
|
|
1258
|
-
}
|
|
1259
|
-
__decorate([
|
|
1260
|
-
Type(() => ProductForKit),
|
|
1261
|
-
__metadata("design:type", ProductForKit)
|
|
1262
|
-
], KitProduct.prototype, "kit", void 0);
|
|
1263
|
-
__decorate([
|
|
1264
|
-
Type(() => ProductForKit),
|
|
1265
|
-
__metadata("design:type", ProductForKit)
|
|
1266
|
-
], KitProduct.prototype, "product", void 0);
|
|
1267
|
-
|
|
1268
|
-
class ProductForCategory extends ProductBase {
|
|
1269
|
-
static get identifiersFields() {
|
|
1270
|
-
return ['id'];
|
|
1271
|
-
}
|
|
1272
|
-
}
|
|
1273
|
-
__decorate([
|
|
1274
|
-
Type(() => KitProduct),
|
|
1275
|
-
__metadata("design:type", Array)
|
|
1276
|
-
], ProductForCategory.prototype, "kitProducts", void 0);
|
|
1277
|
-
|
|
1278
|
-
class Category extends CategoryBase {
|
|
1279
|
-
static get identifiersFields() {
|
|
758
|
+
class Category extends BaseModel {
|
|
759
|
+
identifierFields() {
|
|
1280
760
|
return ['id'];
|
|
1281
761
|
}
|
|
1282
|
-
}
|
|
1283
|
-
__decorate([
|
|
1284
|
-
Type(() => ProductForCategory),
|
|
1285
|
-
__metadata("design:type", Array)
|
|
1286
|
-
], Category.prototype, "childrenProducts", void 0);
|
|
1287
|
-
|
|
1288
|
-
class CategoryCollectionChildren extends BaseModel {
|
|
1289
|
-
static get identifiersFields() {
|
|
1290
|
-
return ['collectionId', 'categoryId'];
|
|
1291
|
-
}
|
|
1292
|
-
}
|
|
1293
|
-
__decorate([
|
|
1294
|
-
Type(() => CategoryCollectionChildren),
|
|
1295
|
-
__metadata("design:type", CategoryCollectionChildren)
|
|
1296
|
-
], CategoryCollectionChildren.prototype, "parent", void 0);
|
|
1297
|
-
|
|
1298
|
-
class CategoryFilter extends BaseModel {
|
|
1299
762
|
static get identifiersFields() {
|
|
1300
763
|
return ['id'];
|
|
1301
764
|
}
|
|
1302
765
|
}
|
|
1303
|
-
__decorate([
|
|
1304
|
-
Type(() => Filter),
|
|
1305
|
-
__metadata("design:type", Filter)
|
|
1306
|
-
], CategoryFilter.prototype, "filter", void 0);
|
|
1307
|
-
__decorate([
|
|
1308
|
-
Type(() => Category),
|
|
1309
|
-
__metadata("design:type", Category)
|
|
1310
|
-
], CategoryFilter.prototype, "category", void 0);
|
|
1311
766
|
|
|
1312
767
|
var GenderDestination;
|
|
1313
768
|
(function (GenderDestination) {
|
|
@@ -1324,60 +779,54 @@ var Shops;
|
|
|
1324
779
|
Shops["ALL"] = "ALL";
|
|
1325
780
|
})(Shops || (Shops = {}));
|
|
1326
781
|
|
|
1327
|
-
class
|
|
1328
|
-
|
|
782
|
+
class Product extends BaseModel {
|
|
783
|
+
identifierFields() {
|
|
1329
784
|
return ['id'];
|
|
1330
785
|
}
|
|
1331
|
-
}
|
|
1332
|
-
|
|
1333
|
-
class Product extends ProductBase {
|
|
1334
786
|
static get identifiersFields() {
|
|
1335
787
|
return ['id'];
|
|
1336
788
|
}
|
|
1337
789
|
}
|
|
1338
|
-
__decorate([
|
|
1339
|
-
Type(() => CategoryForProduct),
|
|
1340
|
-
__metadata("design:type", CategoryForProduct)
|
|
1341
|
-
], Product.prototype, "category", void 0);
|
|
1342
790
|
__decorate([
|
|
1343
791
|
Type(() => KitProduct),
|
|
1344
792
|
__metadata("design:type", Array)
|
|
1345
793
|
], Product.prototype, "kitProducts", void 0);
|
|
1346
794
|
|
|
1347
|
-
class
|
|
1348
|
-
static get identifiersFields() {
|
|
1349
|
-
return ['id', 'productId'];
|
|
1350
|
-
}
|
|
1351
|
-
}
|
|
1352
|
-
|
|
1353
|
-
class Wishlist extends Category {
|
|
1354
|
-
static get identifiersFields() {
|
|
1355
|
-
return ['id'];
|
|
1356
|
-
}
|
|
1357
|
-
}
|
|
1358
|
-
|
|
1359
|
-
class Buy2Win extends BaseModel {
|
|
795
|
+
class KitProduct extends BaseModel {
|
|
1360
796
|
static get identifiersFields() {
|
|
1361
|
-
return ['
|
|
797
|
+
return ['productId', 'kitProducId'];
|
|
1362
798
|
}
|
|
1363
799
|
}
|
|
1364
800
|
__decorate([
|
|
1365
|
-
Type(() =>
|
|
1366
|
-
__metadata("design:type",
|
|
1367
|
-
],
|
|
801
|
+
Type(() => Product),
|
|
802
|
+
__metadata("design:type", Product)
|
|
803
|
+
], KitProduct.prototype, "kit", void 0);
|
|
804
|
+
__decorate([
|
|
805
|
+
Type(() => Product),
|
|
806
|
+
__metadata("design:type", Product)
|
|
807
|
+
], KitProduct.prototype, "product", void 0);
|
|
1368
808
|
|
|
1369
|
-
class
|
|
1370
|
-
|
|
809
|
+
class Variant extends BaseModel {
|
|
810
|
+
identifierFields() {
|
|
1371
811
|
return ['id'];
|
|
1372
812
|
}
|
|
1373
|
-
}
|
|
1374
|
-
|
|
1375
|
-
class CampaignHashtag extends BaseModel {
|
|
1376
813
|
static get identifiersFields() {
|
|
1377
|
-
return ['id'];
|
|
814
|
+
return ['id', 'productId'];
|
|
1378
815
|
}
|
|
1379
816
|
}
|
|
1380
817
|
|
|
818
|
+
var OrderStatus;
|
|
819
|
+
(function (OrderStatus) {
|
|
820
|
+
OrderStatus["AGUARDANDO_PAGAMENTO"] = "Aguardando pagamento";
|
|
821
|
+
OrderStatus["EM_PREPARO"] = "Preparando pedido";
|
|
822
|
+
OrderStatus["NF_EMITIDA"] = "Nota Fiscal Emitida";
|
|
823
|
+
OrderStatus["AGUARDANDO_ENVIO"] = "Aguardando Transaportadora";
|
|
824
|
+
OrderStatus["ENVIADO"] = "Enviado";
|
|
825
|
+
OrderStatus["ENTREGUE"] = "Entregue";
|
|
826
|
+
OrderStatus["CANCELADO"] = "Cancelado";
|
|
827
|
+
OrderStatus["CREDIT_CARD"] = "credit_card";
|
|
828
|
+
})(OrderStatus || (OrderStatus = {}));
|
|
829
|
+
|
|
1381
830
|
class LineItem extends Product {
|
|
1382
831
|
}
|
|
1383
832
|
|
|
@@ -1401,12 +850,12 @@ __decorate([
|
|
|
1401
850
|
__metadata("design:type", User)
|
|
1402
851
|
], Checkout.prototype, "user", void 0);
|
|
1403
852
|
__decorate([
|
|
1404
|
-
Type(() =>
|
|
1405
|
-
__metadata("design:type",
|
|
853
|
+
Type(() => Address),
|
|
854
|
+
__metadata("design:type", Address)
|
|
1406
855
|
], Checkout.prototype, "shippingAddress", void 0);
|
|
1407
856
|
__decorate([
|
|
1408
|
-
Type(() =>
|
|
1409
|
-
__metadata("design:type",
|
|
857
|
+
Type(() => Address),
|
|
858
|
+
__metadata("design:type", Address)
|
|
1410
859
|
], Checkout.prototype, "billingAddress", void 0);
|
|
1411
860
|
__decorate([
|
|
1412
861
|
Type(() => ShippingMethod),
|
|
@@ -1417,18 +866,6 @@ __decorate([
|
|
|
1417
866
|
__metadata("design:type", Coupon)
|
|
1418
867
|
], Checkout.prototype, "coupon", void 0);
|
|
1419
868
|
|
|
1420
|
-
var OrderStatus;
|
|
1421
|
-
(function (OrderStatus) {
|
|
1422
|
-
OrderStatus["AGUARDANDO_PAGAMENTO"] = "Aguardando pagamento";
|
|
1423
|
-
OrderStatus["EM_PREPARO"] = "Preparando pedido";
|
|
1424
|
-
OrderStatus["NF_EMITIDA"] = "Nota Fiscal Emitida";
|
|
1425
|
-
OrderStatus["AGUARDANDO_ENVIO"] = "Aguardando Transaportadora";
|
|
1426
|
-
OrderStatus["ENVIADO"] = "Enviado";
|
|
1427
|
-
OrderStatus["ENTREGUE"] = "Entregue";
|
|
1428
|
-
OrderStatus["CANCELADO"] = "Cancelado";
|
|
1429
|
-
OrderStatus["CREDIT_CARD"] = "credit_card";
|
|
1430
|
-
})(OrderStatus || (OrderStatus = {}));
|
|
1431
|
-
|
|
1432
869
|
class Order extends Checkout {
|
|
1433
870
|
}
|
|
1434
871
|
__decorate([
|
|
@@ -1442,12 +879,12 @@ class CheckoutSubscription extends BaseModel {
|
|
|
1442
879
|
}
|
|
1443
880
|
}
|
|
1444
881
|
__decorate([
|
|
1445
|
-
Type(() =>
|
|
1446
|
-
__metadata("design:type",
|
|
882
|
+
Type(() => Address),
|
|
883
|
+
__metadata("design:type", Address)
|
|
1447
884
|
], CheckoutSubscription.prototype, "shippingAddress", void 0);
|
|
1448
885
|
__decorate([
|
|
1449
|
-
Type(() =>
|
|
1450
|
-
__metadata("design:type",
|
|
886
|
+
Type(() => Address),
|
|
887
|
+
__metadata("design:type", Address)
|
|
1451
888
|
], CheckoutSubscription.prototype, "billingAddress", void 0);
|
|
1452
889
|
__decorate([
|
|
1453
890
|
Type(() => SubscriptionPlan),
|
|
@@ -1458,19 +895,15 @@ __decorate([
|
|
|
1458
895
|
__metadata("design:type", Coupon)
|
|
1459
896
|
], CheckoutSubscription.prototype, "coupon", void 0);
|
|
1460
897
|
|
|
1461
|
-
class
|
|
1462
|
-
static
|
|
1463
|
-
|
|
1464
|
-
product.price.fullPrice = Number(product.price.fullPrice.toFixed(2));
|
|
1465
|
-
if (product.price.subscriberPrice) {
|
|
1466
|
-
product.price.subscriberPrice = Number(product.price.subscriberPrice.toFixed(2));
|
|
1467
|
-
}
|
|
1468
|
-
if (product instanceof LineItem && product.pricePaid) {
|
|
1469
|
-
product.pricePaid = Number(product.pricePaid.toFixed(2));
|
|
1470
|
-
}
|
|
1471
|
-
return product;
|
|
898
|
+
class Buy2Win extends BaseModel {
|
|
899
|
+
static get identifiersFields() {
|
|
900
|
+
return ['id'];
|
|
1472
901
|
}
|
|
1473
902
|
}
|
|
903
|
+
__decorate([
|
|
904
|
+
Type(() => Category),
|
|
905
|
+
__metadata("design:type", Array)
|
|
906
|
+
], Buy2Win.prototype, "categories", void 0);
|
|
1474
907
|
|
|
1475
908
|
var FilterType;
|
|
1476
909
|
(function (FilterType) {
|
|
@@ -1571,12 +1004,6 @@ class ShopMenu extends BaseModel {
|
|
|
1571
1004
|
}
|
|
1572
1005
|
}
|
|
1573
1006
|
|
|
1574
|
-
class ShopSettings extends BaseModel {
|
|
1575
|
-
static get identifiersFields() {
|
|
1576
|
-
return ['id'];
|
|
1577
|
-
}
|
|
1578
|
-
}
|
|
1579
|
-
|
|
1580
1007
|
class InvalidArgumentError extends CustomError {
|
|
1581
1008
|
constructor(message) {
|
|
1582
1009
|
super(message);
|
|
@@ -1607,17 +1034,13 @@ class AxiosAdapter {
|
|
|
1607
1034
|
constructor(config) {
|
|
1608
1035
|
this.config = config;
|
|
1609
1036
|
}
|
|
1610
|
-
get(index
|
|
1037
|
+
get(index) {
|
|
1611
1038
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1612
1039
|
try {
|
|
1613
1040
|
const { data } = yield axios({
|
|
1614
|
-
url: `${this.config.url}/${index}
|
|
1041
|
+
url: `${this.config.url}/${index}`,
|
|
1615
1042
|
method: 'GET',
|
|
1616
|
-
|
|
1617
|
-
headers: {
|
|
1618
|
-
'Content-Type': 'application/json',
|
|
1619
|
-
Authorization: `ApiKey ${this.config.credential}`,
|
|
1620
|
-
},
|
|
1043
|
+
headers: { Authorization: `Basic ${this.config.credential}` },
|
|
1621
1044
|
});
|
|
1622
1045
|
return data._source;
|
|
1623
1046
|
}
|
|
@@ -1631,14 +1054,9 @@ class AxiosAdapter {
|
|
|
1631
1054
|
query(index, query) {
|
|
1632
1055
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1633
1056
|
const { data } = yield axios({
|
|
1634
|
-
url: `${this.config.url}/${index}
|
|
1057
|
+
url: `${this.config.url}/${index}`,
|
|
1635
1058
|
method: 'POST',
|
|
1636
|
-
|
|
1637
|
-
headers: {
|
|
1638
|
-
Accept: 'application/vnd.elasticsearch+json;compatible-with=7',
|
|
1639
|
-
'Content-Type': 'application/vnd.elasticsearch+json;compatible-with=7',
|
|
1640
|
-
Authorization: `ApiKey ${this.config.credential}`,
|
|
1641
|
-
},
|
|
1059
|
+
headers: { Authorization: `Basic ${this.config.credential}` },
|
|
1642
1060
|
data: query,
|
|
1643
1061
|
});
|
|
1644
1062
|
return {
|
|
@@ -1650,29 +1068,19 @@ class AxiosAdapter {
|
|
|
1650
1068
|
save(index, data) {
|
|
1651
1069
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1652
1070
|
yield axios({
|
|
1653
|
-
url: `${this.config.url}/${index}
|
|
1654
|
-
method: 'POST',
|
|
1655
|
-
headers: { Authorization: `ApiKey ${this.config.credential}` },
|
|
1656
|
-
data,
|
|
1657
|
-
});
|
|
1658
|
-
});
|
|
1659
|
-
}
|
|
1660
|
-
update(index, id, data) {
|
|
1661
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1662
|
-
yield axios({
|
|
1663
|
-
url: `${this.config.url}/${index}/_update/${id}`,
|
|
1071
|
+
url: `${this.config.url}/${index}`,
|
|
1664
1072
|
method: 'PUT',
|
|
1665
|
-
headers: { Authorization: `
|
|
1073
|
+
headers: { Authorization: `Basic ${this.config.credential}` },
|
|
1666
1074
|
data,
|
|
1667
1075
|
});
|
|
1668
1076
|
});
|
|
1669
1077
|
}
|
|
1670
|
-
delete(index
|
|
1078
|
+
delete(index) {
|
|
1671
1079
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1672
1080
|
yield axios({
|
|
1673
|
-
url: `${this.config.url}/${index}
|
|
1081
|
+
url: `${this.config.url}/${index}`,
|
|
1674
1082
|
method: 'DELETE',
|
|
1675
|
-
headers: { Authorization: `
|
|
1083
|
+
headers: { Authorization: `Basic ${this.config.credential}` },
|
|
1676
1084
|
});
|
|
1677
1085
|
});
|
|
1678
1086
|
}
|
|
@@ -1681,19 +1089,16 @@ class AxiosAdapter {
|
|
|
1681
1089
|
class ProductsIndex {
|
|
1682
1090
|
constructor(adapter) {
|
|
1683
1091
|
this.adapter = adapter;
|
|
1684
|
-
this.index = `products`;
|
|
1685
1092
|
}
|
|
1686
|
-
|
|
1093
|
+
get(id) {
|
|
1687
1094
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1688
|
-
const data = yield this.adapter.get(
|
|
1095
|
+
const data = yield this.adapter.get(`products/_doc/${id}`);
|
|
1689
1096
|
return Product.toInstance(data);
|
|
1690
1097
|
});
|
|
1691
1098
|
}
|
|
1692
|
-
|
|
1099
|
+
findById(ids, options) {
|
|
1693
1100
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1694
|
-
const size = total || 9;
|
|
1695
1101
|
const fields = [
|
|
1696
|
-
'EAN',
|
|
1697
1102
|
'brand',
|
|
1698
1103
|
'id',
|
|
1699
1104
|
'images',
|
|
@@ -1704,88 +1109,73 @@ class ProductsIndex {
|
|
|
1704
1109
|
'stock',
|
|
1705
1110
|
'slug',
|
|
1706
1111
|
'reviews',
|
|
1707
|
-
'
|
|
1708
|
-
'
|
|
1112
|
+
'pricePaid',
|
|
1113
|
+
'isGift',
|
|
1114
|
+
'stock',
|
|
1115
|
+
'weight',
|
|
1116
|
+
'tags',
|
|
1117
|
+
'hasVariants',
|
|
1118
|
+
'type',
|
|
1709
1119
|
];
|
|
1710
|
-
const
|
|
1711
|
-
if (size > 9) {
|
|
1712
|
-
fields.push(...['pricePaid', 'isGift', 'stock', 'weight', 'tags']);
|
|
1713
|
-
}
|
|
1714
|
-
else {
|
|
1715
|
-
filter.push({ term: { tags: shop == Shops.GLAMSHOP ? 'feminino' : 'masculino' } });
|
|
1716
|
-
}
|
|
1717
|
-
const search = yield this.adapter.query(this.index, {
|
|
1718
|
-
size,
|
|
1719
|
-
_source: fields,
|
|
1720
|
-
query: {
|
|
1120
|
+
const { hits } = yield this.adapter.query('products/_search', Object.assign({ _source: fields, query: {
|
|
1721
1121
|
bool: {
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
'name',
|
|
1728
|
-
'name.folded',
|
|
1729
|
-
'name.search',
|
|
1730
|
-
'description',
|
|
1731
|
-
'description.search',
|
|
1732
|
-
'description.folded',
|
|
1733
|
-
'brand',
|
|
1734
|
-
'brand.search',
|
|
1735
|
-
'brand.folded',
|
|
1736
|
-
],
|
|
1737
|
-
fuzziness: 2,
|
|
1122
|
+
filter: [
|
|
1123
|
+
{
|
|
1124
|
+
terms: {
|
|
1125
|
+
_id: ids,
|
|
1126
|
+
},
|
|
1738
1127
|
},
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
'name.search': {
|
|
1743
|
-
query: `${searchTerm}`,
|
|
1744
|
-
slop: 10,
|
|
1128
|
+
{
|
|
1129
|
+
term: {
|
|
1130
|
+
published: true,
|
|
1745
1131
|
},
|
|
1746
1132
|
},
|
|
1747
|
-
|
|
1748
|
-
|
|
1133
|
+
...((options === null || options === void 0 ? void 0 : options.hasStock)
|
|
1134
|
+
? [
|
|
1135
|
+
{
|
|
1136
|
+
range: {
|
|
1137
|
+
'stock.quantity': {
|
|
1138
|
+
gt: 0,
|
|
1139
|
+
},
|
|
1140
|
+
},
|
|
1141
|
+
},
|
|
1142
|
+
]
|
|
1143
|
+
: []),
|
|
1144
|
+
],
|
|
1749
1145
|
},
|
|
1750
|
-
},
|
|
1751
|
-
|
|
1752
|
-
search.hits = search.hits
|
|
1753
|
-
.filter((e) => e._source.name !== '')
|
|
1754
|
-
.map((hit) => {
|
|
1755
|
-
RoundProductPricesHelper.roundProductPrices(hit._source);
|
|
1756
|
-
return hit;
|
|
1757
|
-
});
|
|
1758
|
-
return search;
|
|
1146
|
+
} }, ((options === null || options === void 0 ? void 0 : options.size) ? { size: options === null || options === void 0 ? void 0 : options.size } : {})));
|
|
1147
|
+
return hits.map((hit) => Product.toInstance(hit._source));
|
|
1759
1148
|
});
|
|
1760
1149
|
}
|
|
1761
1150
|
save(product) {
|
|
1762
1151
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1152
|
+
delete product.createdAt;
|
|
1153
|
+
delete product.updatedAt;
|
|
1154
|
+
delete product.kitProducts;
|
|
1763
1155
|
try {
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
console.error(error);
|
|
1769
|
-
}
|
|
1770
|
-
});
|
|
1771
|
-
}
|
|
1772
|
-
update(product) {
|
|
1773
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1774
|
-
try {
|
|
1775
|
-
yield this.adapter.update(this.index, product.id, product);
|
|
1156
|
+
if (!product.firestoreId)
|
|
1157
|
+
throw new Error('Is not a product from firestore');
|
|
1158
|
+
yield this.get(product.firestoreId);
|
|
1159
|
+
yield this.adapter.save(`products/_doc/${product.firestoreId}`, product.toPlain());
|
|
1776
1160
|
}
|
|
1777
1161
|
catch (error) {
|
|
1778
|
-
|
|
1162
|
+
if (!(error instanceof Error))
|
|
1163
|
+
throw error;
|
|
1164
|
+
console.error(error.message);
|
|
1165
|
+
yield this.adapter.save(`products/_doc/${product.id}`, product.toPlain());
|
|
1779
1166
|
}
|
|
1780
1167
|
});
|
|
1781
1168
|
}
|
|
1782
|
-
delete(
|
|
1169
|
+
delete(product) {
|
|
1783
1170
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1171
|
+
if (!product.firestoreId)
|
|
1172
|
+
return;
|
|
1784
1173
|
try {
|
|
1785
|
-
yield this.
|
|
1174
|
+
yield this.get(product.firestoreId);
|
|
1175
|
+
yield this.adapter.delete(`products/_doc/${product.firestoreId}`);
|
|
1786
1176
|
}
|
|
1787
1177
|
catch (error) {
|
|
1788
|
-
|
|
1178
|
+
yield this.adapter.delete(`products/_doc/${product.id}`);
|
|
1789
1179
|
}
|
|
1790
1180
|
});
|
|
1791
1181
|
}
|
|
@@ -1813,39 +1203,17 @@ const withFirestore = (MixinBase) => {
|
|
|
1813
1203
|
? data[key].map((element) => (isObjectsAndNoDate(element) ? bindAllDateFromObject(element) : element))
|
|
1814
1204
|
: bindDate(data[key], key) })), {});
|
|
1815
1205
|
};
|
|
1816
|
-
const omitByRecursivelyInPlace = (value, iteratee) => {
|
|
1817
|
-
each(value, (v, k) => {
|
|
1818
|
-
if (iteratee(v, k)) {
|
|
1819
|
-
unset(value, k);
|
|
1820
|
-
}
|
|
1821
|
-
else if (isObject(v)) {
|
|
1822
|
-
omitByRecursivelyInPlace(v, iteratee);
|
|
1823
|
-
}
|
|
1824
|
-
});
|
|
1825
|
-
return value;
|
|
1826
|
-
};
|
|
1827
1206
|
return class extends MixinBase {
|
|
1828
|
-
constructor(
|
|
1829
|
-
super(...
|
|
1830
|
-
this.fields = {};
|
|
1831
|
-
this.interceptors = {};
|
|
1207
|
+
constructor() {
|
|
1208
|
+
super(...arguments);
|
|
1832
1209
|
this.collectionName = '';
|
|
1833
|
-
const options = params[0];
|
|
1834
|
-
this.firestore = options.firestore;
|
|
1835
|
-
this.collectionName = options.collectionName;
|
|
1836
|
-
this.model = options.model;
|
|
1837
|
-
this.fields = options.fields;
|
|
1838
|
-
this.interceptors = options.interceptors;
|
|
1839
1210
|
}
|
|
1840
1211
|
collection(path) {
|
|
1841
1212
|
return collection(this.firestore, path || this.collectionName).withConverter(this.buildModelInstance());
|
|
1842
1213
|
}
|
|
1843
1214
|
buildModelInstance() {
|
|
1844
1215
|
return {
|
|
1845
|
-
toFirestore: (data) =>
|
|
1846
|
-
const plain = (data === null || data === void 0 ? void 0 : data.toPlain) ? data.toPlain() : data;
|
|
1847
|
-
return omitByRecursivelyInPlace(plain, (value) => value === undefined);
|
|
1848
|
-
},
|
|
1216
|
+
toFirestore: (data) => ((data === null || data === void 0 ? void 0 : data.toPlain) ? data.toPlain() : data),
|
|
1849
1217
|
fromFirestore: (snap) => {
|
|
1850
1218
|
const data = snap.data();
|
|
1851
1219
|
let bindedData = null;
|
|
@@ -1885,16 +1253,12 @@ const withHelpers = (MixinBase) => {
|
|
|
1885
1253
|
const withGetFirestore = (MixinBase) => {
|
|
1886
1254
|
return class GetFirestore extends MixinBase {
|
|
1887
1255
|
get(identifiers) {
|
|
1888
|
-
var _a, _b, _c, _d;
|
|
1889
1256
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1890
|
-
const
|
|
1891
|
-
const intercepted = yield ((_b = (_a = this.interceptors) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.call(_a, { instance }));
|
|
1892
|
-
const builded = (intercepted === null || intercepted === void 0 ? void 0 : intercepted.instance) || instance;
|
|
1893
|
-
const docRef = yield getDoc(doc(yield this.collection(this.buildCollectionPathForGet(identifiers)), Object.values(builded.identifier).shift().toString()));
|
|
1257
|
+
const docRef = yield getDoc(doc(yield this.collection(this.buildCollectionPathForGet(identifiers)), Object.values(identifiers).shift().toString()));
|
|
1894
1258
|
const data = docRef.data();
|
|
1895
1259
|
if (isNil(data))
|
|
1896
1260
|
throw new NotFoundError(`Document ${JSON.stringify(identifiers)} not found`);
|
|
1897
|
-
return
|
|
1261
|
+
return data;
|
|
1898
1262
|
});
|
|
1899
1263
|
}
|
|
1900
1264
|
buildCollectionPathForGet(identifiers) {
|
|
@@ -1932,7 +1296,7 @@ const withFindFirestore = (MixinBase) => {
|
|
|
1932
1296
|
], []);
|
|
1933
1297
|
this.buildWhereSentence = (fieldName, options) => {
|
|
1934
1298
|
if (this.isSubCollection(this) && fieldName === this.parentIdField)
|
|
1935
|
-
|
|
1299
|
+
[];
|
|
1936
1300
|
const value = (options === null || options === void 0 ? void 0 : options.value) || options;
|
|
1937
1301
|
const object = {};
|
|
1938
1302
|
set(object, fieldName, value);
|
|
@@ -1973,13 +1337,9 @@ const withFindFirestore = (MixinBase) => {
|
|
|
1973
1337
|
return Object.keys(fieldsToOrderBy).map((fieldName) => orderBy(fieldName, fieldsToOrderBy[fieldName]));
|
|
1974
1338
|
};
|
|
1975
1339
|
}
|
|
1976
|
-
find(
|
|
1977
|
-
var _a, _b, _c, _d, _e, _f;
|
|
1340
|
+
find({ filters, limits, orderBy, } = {}) {
|
|
1978
1341
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1979
|
-
const collection = this.collection(this.buildCollectionPathForFind(
|
|
1980
|
-
const enableCount = (_b = (_a = find === null || find === void 0 ? void 0 : find.options) === null || _a === void 0 ? void 0 : _a.enableCount) !== null && _b !== void 0 ? _b : true;
|
|
1981
|
-
const intercepted = yield ((_d = (_c = this.interceptors) === null || _c === void 0 ? void 0 : _c.request) === null || _d === void 0 ? void 0 : _d.call(_c, { find }));
|
|
1982
|
-
const { filters, limits, orderBy } = intercepted.find || find;
|
|
1342
|
+
const collection = this.collection(this.buildCollectionPathForFind(filters));
|
|
1983
1343
|
const queries = this.makeFirestoreWhere(filters || {});
|
|
1984
1344
|
const ordination = this.makeFirestoreOrderBy(filters, orderBy);
|
|
1985
1345
|
const offsets = yield this.defineLimits(filters, limits);
|
|
@@ -1987,8 +1347,8 @@ const withFindFirestore = (MixinBase) => {
|
|
|
1987
1347
|
const docs = yield getDocs(query(collection, ...queryArgumments));
|
|
1988
1348
|
const data = docs.docs.map((doc) => doc.data());
|
|
1989
1349
|
return {
|
|
1990
|
-
data
|
|
1991
|
-
count:
|
|
1350
|
+
data,
|
|
1351
|
+
count: this.calculateCount(data, limits),
|
|
1992
1352
|
};
|
|
1993
1353
|
});
|
|
1994
1354
|
}
|
|
@@ -2000,12 +1360,11 @@ const withFindFirestore = (MixinBase) => {
|
|
|
2000
1360
|
return `${this.parentRepository.collectionName}/${parentId}/${this.collectionName}`;
|
|
2001
1361
|
}
|
|
2002
1362
|
defineLimits(filters, limits) {
|
|
2003
|
-
var _a;
|
|
2004
1363
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2005
1364
|
const queries = [];
|
|
2006
1365
|
if (limits === null || limits === void 0 ? void 0 : limits.offset) {
|
|
2007
1366
|
if (this.model.isModel(limits.offset))
|
|
2008
|
-
queries.push(startAfter(yield getDoc(doc(this.collection(this.buildCollectionPathForFind(filters)),
|
|
1367
|
+
queries.push(startAfter(yield getDoc(doc(this.collection(this.buildCollectionPathForFind(filters)), limits.offset.identifier.shift()))));
|
|
2009
1368
|
else if (isNumber(limits.offset) || isString(limits.offset))
|
|
2010
1369
|
queries.push(startAt(limits.offset));
|
|
2011
1370
|
}
|
|
@@ -2027,21 +1386,16 @@ const withFindFirestore = (MixinBase) => {
|
|
|
2027
1386
|
const withCreateFirestore = (MixinBase) => {
|
|
2028
1387
|
return class CreateFirestore extends MixinBase {
|
|
2029
1388
|
create(data) {
|
|
2030
|
-
var _a, _b, _c, _d;
|
|
2031
1389
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2032
|
-
const
|
|
2033
|
-
const intercepted = yield ((_b = (_a = this.interceptors) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.call(_a, { instance }));
|
|
2034
|
-
const builded = (intercepted === null || intercepted === void 0 ? void 0 : intercepted.instance) || instance;
|
|
2035
|
-
const docRef = yield this.save(builded);
|
|
1390
|
+
const docRef = yield this.save(this.model.toInstance(data));
|
|
2036
1391
|
const doc = yield getDoc(docRef);
|
|
2037
|
-
|
|
2038
|
-
return docBuilded;
|
|
1392
|
+
return doc.data();
|
|
2039
1393
|
});
|
|
2040
1394
|
}
|
|
2041
1395
|
save(data) {
|
|
2042
1396
|
var _a, _b;
|
|
2043
1397
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2044
|
-
const id = (_b = (_a =
|
|
1398
|
+
const id = (_b = data.identifier[(_a = data.identifiersFields) === null || _a === void 0 ? void 0 : _a.shift()]) === null || _b === void 0 ? void 0 : _b.toString();
|
|
2045
1399
|
const collectionPath = this.buildCollectionPathForAdd(data);
|
|
2046
1400
|
const collection = this.collection(collectionPath);
|
|
2047
1401
|
if (isEmpty(id))
|
|
@@ -2083,17 +1437,13 @@ const withUpdateFirestore = (MixinBase) => {
|
|
|
2083
1437
|
};
|
|
2084
1438
|
return class UpdateFirestore extends MixinBase {
|
|
2085
1439
|
update(data) {
|
|
2086
|
-
var _a, _b, _c, _d;
|
|
2087
1440
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2088
1441
|
const model = new this.model();
|
|
2089
1442
|
const keyField = model.identifiersFields.shift();
|
|
2090
1443
|
const docRef = doc(this.collection(this.buildCollectionPathForUpdate(data)), getValueFromParams(data, keyField).toString());
|
|
2091
|
-
|
|
2092
|
-
const
|
|
2093
|
-
|
|
2094
|
-
yield setDoc(docRef, builded.toPlain(), { merge: true });
|
|
2095
|
-
const docData = yield getDoc(docRef).then((doc) => doc.data());
|
|
2096
|
-
return ((_d = (_c = this.interceptors) === null || _c === void 0 ? void 0 : _c.response) === null || _d === void 0 ? void 0 : _d.call(_c, docData, intercepted)) || docData;
|
|
1444
|
+
yield setDoc(docRef, this.paramsToPlain(data), { merge: true });
|
|
1445
|
+
const docData = yield getDoc(docRef);
|
|
1446
|
+
return docData.data();
|
|
2097
1447
|
});
|
|
2098
1448
|
}
|
|
2099
1449
|
buildCollectionPathForUpdate(identifiers) {
|
|
@@ -2113,13 +1463,8 @@ const withUpdateFirestore = (MixinBase) => {
|
|
|
2113
1463
|
const withDeleteFirestore = (MixinBase) => {
|
|
2114
1464
|
return class DeleteFirestore extends MixinBase {
|
|
2115
1465
|
delete(identifiers) {
|
|
2116
|
-
var _a, _b, _c, _d;
|
|
2117
1466
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2118
|
-
|
|
2119
|
-
const intercepted = yield ((_b = (_a = this.interceptors) === null || _a === void 0 ? void 0 : _a.request) === null || _b === void 0 ? void 0 : _b.call(_a, { instance }));
|
|
2120
|
-
const builded = (intercepted === null || intercepted === void 0 ? void 0 : intercepted.instance) || instance;
|
|
2121
|
-
yield deleteDoc(doc(this.collection(this.buildCollectionPathForRemove(identifiers)), Object.values(builded.identifier).shift().toString()));
|
|
2122
|
-
yield ((_d = (_c = this.interceptors) === null || _c === void 0 ? void 0 : _c.response) === null || _d === void 0 ? void 0 : _d.call(_c, instance, intercepted));
|
|
1467
|
+
yield deleteDoc(doc(this.collection(this.buildCollectionPathForRemove(identifiers)), Object.values(identifiers).shift().toString()));
|
|
2123
1468
|
});
|
|
2124
1469
|
}
|
|
2125
1470
|
buildCollectionPathForRemove(identifiers) {
|
|
@@ -2132,10 +1477,8 @@ const withDeleteFirestore = (MixinBase) => {
|
|
|
2132
1477
|
|
|
2133
1478
|
const withSubCollection = (MixinBase, ParentModel) => {
|
|
2134
1479
|
return class SubCollectionMix extends MixinBase {
|
|
2135
|
-
constructor(...
|
|
2136
|
-
|
|
2137
|
-
super(...params);
|
|
2138
|
-
this.parentIdField = options.parentIdField;
|
|
1480
|
+
constructor(...args) {
|
|
1481
|
+
super(args);
|
|
2139
1482
|
}
|
|
2140
1483
|
collection(path) {
|
|
2141
1484
|
return super.collection(path);
|
|
@@ -2149,87 +1492,73 @@ const withCrudFirestore = (MixinBase) => {
|
|
|
2149
1492
|
};
|
|
2150
1493
|
|
|
2151
1494
|
class LeadFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2152
|
-
constructor(
|
|
2153
|
-
super(
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
interceptors,
|
|
2158
|
-
});
|
|
1495
|
+
constructor(firestore) {
|
|
1496
|
+
super();
|
|
1497
|
+
this.firestore = firestore;
|
|
1498
|
+
this.collectionName = 'leads';
|
|
1499
|
+
this.model = Lead;
|
|
2159
1500
|
}
|
|
2160
1501
|
}
|
|
2161
1502
|
|
|
2162
1503
|
class SubscriptionEditionFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), Subscription) {
|
|
2163
|
-
constructor(
|
|
2164
|
-
super(
|
|
2165
|
-
|
|
2166
|
-
collectionName: 'editions',
|
|
2167
|
-
parentIdField: 'subscriptionId',
|
|
2168
|
-
model: Edition,
|
|
2169
|
-
interceptors,
|
|
2170
|
-
});
|
|
1504
|
+
constructor(firestore, parentRepository) {
|
|
1505
|
+
super();
|
|
1506
|
+
this.firestore = firestore;
|
|
2171
1507
|
this.parentRepository = parentRepository;
|
|
1508
|
+
this.collectionName = 'editions';
|
|
1509
|
+
this.parentIdField = 'subscriptionId';
|
|
1510
|
+
this.model = Edition;
|
|
2172
1511
|
}
|
|
2173
1512
|
}
|
|
2174
1513
|
|
|
2175
1514
|
class SubscriptionFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2176
|
-
constructor(
|
|
2177
|
-
super(
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
interceptors,
|
|
2182
|
-
});
|
|
1515
|
+
constructor(firestore) {
|
|
1516
|
+
super();
|
|
1517
|
+
this.firestore = firestore;
|
|
1518
|
+
this.collectionName = 'subscription';
|
|
1519
|
+
this.model = Subscription;
|
|
2183
1520
|
}
|
|
2184
1521
|
}
|
|
2185
1522
|
|
|
2186
1523
|
class SubscriptionPaymentFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), Subscription) {
|
|
2187
|
-
constructor(
|
|
2188
|
-
super(
|
|
2189
|
-
|
|
2190
|
-
collectionName: 'payments',
|
|
2191
|
-
parentIdField: 'subscriptionId',
|
|
2192
|
-
model: SubscriptionPayment,
|
|
2193
|
-
interceptors,
|
|
2194
|
-
});
|
|
1524
|
+
constructor(firestore, parentRepository) {
|
|
1525
|
+
super();
|
|
1526
|
+
this.firestore = firestore;
|
|
2195
1527
|
this.parentRepository = parentRepository;
|
|
1528
|
+
this.collectionName = 'payments';
|
|
1529
|
+
this.parentIdField = 'subscriptionId';
|
|
1530
|
+
this.model = SubscriptionPayment;
|
|
2196
1531
|
}
|
|
2197
1532
|
}
|
|
2198
1533
|
|
|
2199
1534
|
class UserAddressFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), User) {
|
|
2200
|
-
constructor(
|
|
2201
|
-
super(
|
|
2202
|
-
|
|
2203
|
-
collectionName: 'address',
|
|
2204
|
-
parentIdField: 'userId',
|
|
2205
|
-
model: UserAddress,
|
|
2206
|
-
interceptors,
|
|
2207
|
-
});
|
|
1535
|
+
constructor(firestore, parentRepository) {
|
|
1536
|
+
super();
|
|
1537
|
+
this.firestore = firestore;
|
|
2208
1538
|
this.parentRepository = parentRepository;
|
|
1539
|
+
this.collectionName = 'address';
|
|
1540
|
+
this.parentIdField = 'userId';
|
|
1541
|
+
this.model = UserAddress;
|
|
2209
1542
|
}
|
|
2210
1543
|
}
|
|
2211
1544
|
|
|
2212
1545
|
class UserBeautyProfileFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), User) {
|
|
2213
|
-
constructor(
|
|
2214
|
-
super(
|
|
2215
|
-
|
|
2216
|
-
collectionName: 'CX',
|
|
2217
|
-
parentIdField: 'userId',
|
|
2218
|
-
model: BeautyProfile,
|
|
2219
|
-
interceptors,
|
|
2220
|
-
});
|
|
1546
|
+
constructor(firestore, parentRepository) {
|
|
1547
|
+
super();
|
|
1548
|
+
this.firestore = firestore;
|
|
2221
1549
|
this.parentRepository = parentRepository;
|
|
1550
|
+
this.collectionName = 'CX';
|
|
1551
|
+
this.parentIdField = 'userId';
|
|
1552
|
+
this.model = BeautyProfile;
|
|
2222
1553
|
}
|
|
2223
1554
|
}
|
|
2224
1555
|
|
|
2225
1556
|
class UserFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2226
|
-
constructor(
|
|
2227
|
-
super(
|
|
2228
|
-
|
|
2229
|
-
|
|
2230
|
-
|
|
2231
|
-
interceptors,
|
|
2232
|
-
});
|
|
1557
|
+
constructor(firestore) {
|
|
1558
|
+
super();
|
|
1559
|
+
this.firestore = firestore;
|
|
1560
|
+
this.collectionName = 'users';
|
|
1561
|
+
this.model = User;
|
|
2233
1562
|
}
|
|
2234
1563
|
get(identifiers) {
|
|
2235
1564
|
const _super = Object.create(null, {
|
|
@@ -2280,26 +1609,22 @@ class UserFirestoreRepository extends withCrudFirestore(withHelpers(withFirestor
|
|
|
2280
1609
|
}
|
|
2281
1610
|
|
|
2282
1611
|
class UserPaymentMethodFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), User) {
|
|
2283
|
-
constructor(
|
|
2284
|
-
super(
|
|
2285
|
-
|
|
2286
|
-
collectionName: 'payment_method',
|
|
2287
|
-
parentIdField: 'userId',
|
|
2288
|
-
model: UserPaymentMethod,
|
|
2289
|
-
interceptors,
|
|
2290
|
-
});
|
|
1612
|
+
constructor(firestore, parentRepository) {
|
|
1613
|
+
super();
|
|
1614
|
+
this.firestore = firestore;
|
|
2291
1615
|
this.parentRepository = parentRepository;
|
|
1616
|
+
this.collectionName = 'payment_method';
|
|
1617
|
+
this.parentIdField = 'userId';
|
|
1618
|
+
this.model = UserPaymentMethod;
|
|
2292
1619
|
}
|
|
2293
1620
|
}
|
|
2294
1621
|
|
|
2295
1622
|
class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2296
|
-
constructor(
|
|
2297
|
-
super(
|
|
2298
|
-
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
interceptors,
|
|
2302
|
-
});
|
|
1623
|
+
constructor(firestore) {
|
|
1624
|
+
super();
|
|
1625
|
+
this.firestore = firestore;
|
|
1626
|
+
this.collectionName = 'categories';
|
|
1627
|
+
this.model = Category;
|
|
2303
1628
|
}
|
|
2304
1629
|
getCategoryBySlug(slug, shop) {
|
|
2305
1630
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -2311,7 +1636,7 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
2311
1636
|
return categoryDocs.docs[0].data();
|
|
2312
1637
|
});
|
|
2313
1638
|
}
|
|
2314
|
-
getCategoriesForHome(categoryIds, limit = 4
|
|
1639
|
+
getCategoriesForHome(categoryIds, limit = 4) {
|
|
2315
1640
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2316
1641
|
const categorySnap = yield getDocs(query(this.collection(this.collectionName), where('id', 'in', categoryIds.filter(Boolean)), where('published', '==', true)));
|
|
2317
1642
|
if (categorySnap.empty)
|
|
@@ -2320,7 +1645,7 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
2320
1645
|
const homeSections = yield Promise.all(categories.map((category) => __awaiter(this, void 0, void 0, function* () {
|
|
2321
1646
|
return ({
|
|
2322
1647
|
category,
|
|
2323
|
-
products: yield this.mountCategory(category, { limit, hasStock: true
|
|
1648
|
+
products: yield this.mountCategory(category, { limit, hasStock: true }),
|
|
2324
1649
|
});
|
|
2325
1650
|
})));
|
|
2326
1651
|
return homeSections;
|
|
@@ -2339,8 +1664,6 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
2339
1664
|
wheres.push(where('published', '==', true), where('id', 'in', productIds));
|
|
2340
1665
|
if (options === null || options === void 0 ? void 0 : options.hasStock)
|
|
2341
1666
|
wheres.push(where('stock.quantity', '>', 0));
|
|
2342
|
-
if (options === null || options === void 0 ? void 0 : options.gender)
|
|
2343
|
-
wheres.push(where('tags', 'array-contains', options === null || options === void 0 ? void 0 : options.gender));
|
|
2344
1667
|
if (options === null || options === void 0 ? void 0 : options.limit)
|
|
2345
1668
|
wheres.push(limit(options === null || options === void 0 ? void 0 : options.limit));
|
|
2346
1669
|
const productSnap = yield getDocs(query(this.collection('productsErpVitrine'), ...wheres));
|
|
@@ -2351,26 +1674,15 @@ class CategoryFirestoreRepository extends withCrudFirestore(withHelpers(withFire
|
|
|
2351
1674
|
return is(products);
|
|
2352
1675
|
});
|
|
2353
1676
|
}
|
|
2354
|
-
getCategoryByShop(shop) {
|
|
2355
|
-
return;
|
|
2356
|
-
}
|
|
2357
|
-
getChildren(parentId) {
|
|
2358
|
-
return;
|
|
2359
|
-
}
|
|
2360
|
-
isChild(id, parentId) {
|
|
2361
|
-
return;
|
|
2362
|
-
}
|
|
2363
1677
|
}
|
|
2364
1678
|
|
|
2365
1679
|
class ProductFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2366
|
-
constructor(
|
|
2367
|
-
super(
|
|
2368
|
-
|
|
2369
|
-
collectionName: 'productsErpVitrine',
|
|
2370
|
-
model: Product,
|
|
2371
|
-
interceptors,
|
|
2372
|
-
});
|
|
1680
|
+
constructor(firestore) {
|
|
1681
|
+
super();
|
|
1682
|
+
this.firestore = firestore;
|
|
2373
1683
|
this.reviews = {};
|
|
1684
|
+
this.collectionName = 'productsErpVitrine';
|
|
1685
|
+
this.model = Product;
|
|
2374
1686
|
}
|
|
2375
1687
|
getBySlug(slug) {
|
|
2376
1688
|
var _a;
|
|
@@ -2411,101 +1723,43 @@ class ProductFirestoreRepository extends withCrudFirestore(withHelpers(withFires
|
|
|
2411
1723
|
return this.reviews[status];
|
|
2412
1724
|
});
|
|
2413
1725
|
}
|
|
2414
|
-
cleanShoppingCountFromIds() {
|
|
2415
|
-
return;
|
|
2416
|
-
}
|
|
2417
|
-
findCatalog(params) {
|
|
2418
|
-
return this.find(params);
|
|
2419
|
-
}
|
|
2420
1726
|
}
|
|
2421
1727
|
|
|
2422
1728
|
class ProductVariantFirestoreRepository extends withSubCollection(withCrudFirestore(withHelpers(withFirestore(Base))), Product) {
|
|
2423
|
-
constructor(
|
|
2424
|
-
super(
|
|
2425
|
-
|
|
2426
|
-
collectionName: 'variants',
|
|
2427
|
-
parentIdField: 'productId',
|
|
2428
|
-
model: Variant,
|
|
2429
|
-
interceptors,
|
|
2430
|
-
});
|
|
1729
|
+
constructor(firestore, parentRepository) {
|
|
1730
|
+
super();
|
|
1731
|
+
this.firestore = firestore;
|
|
2431
1732
|
this.parentRepository = parentRepository;
|
|
1733
|
+
this.collectionName = 'variants';
|
|
1734
|
+
this.parentIdField = 'productId';
|
|
1735
|
+
this.model = Variant;
|
|
2432
1736
|
}
|
|
2433
1737
|
}
|
|
2434
1738
|
|
|
2435
1739
|
class SubscriptionProductFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2436
|
-
constructor(
|
|
2437
|
-
super(
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
interceptors,
|
|
2442
|
-
});
|
|
2443
|
-
}
|
|
2444
|
-
}
|
|
2445
|
-
|
|
2446
|
-
class Buy2WinFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2447
|
-
constructor({ firestore, interceptors }) {
|
|
2448
|
-
super({
|
|
2449
|
-
firestore,
|
|
2450
|
-
collectionName: 'buy2win',
|
|
2451
|
-
model: Buy2Win,
|
|
2452
|
-
interceptors,
|
|
2453
|
-
});
|
|
2454
|
-
}
|
|
2455
|
-
}
|
|
2456
|
-
|
|
2457
|
-
class CampaignDashboardFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2458
|
-
constructor({ firestore, interceptors, }) {
|
|
2459
|
-
super({
|
|
2460
|
-
firestore,
|
|
2461
|
-
collectionName: 'dashboardCampaignsAuto',
|
|
2462
|
-
model: CampaignDashboard,
|
|
2463
|
-
interceptors,
|
|
2464
|
-
});
|
|
2465
|
-
}
|
|
2466
|
-
}
|
|
2467
|
-
|
|
2468
|
-
class CampaignHashtagFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2469
|
-
constructor({ firestore, interceptors, }) {
|
|
2470
|
-
super({
|
|
2471
|
-
firestore,
|
|
2472
|
-
collectionName: 'hashtagCampaignsAuto',
|
|
2473
|
-
model: CampaignHashtag,
|
|
2474
|
-
interceptors,
|
|
2475
|
-
});
|
|
1740
|
+
constructor(firestore) {
|
|
1741
|
+
super();
|
|
1742
|
+
this.firestore = firestore;
|
|
1743
|
+
this.collectionName = 'subscriptionProducts';
|
|
1744
|
+
this.model = Product;
|
|
2476
1745
|
}
|
|
2477
1746
|
}
|
|
2478
1747
|
|
|
2479
1748
|
class CheckoutFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2480
|
-
constructor(
|
|
2481
|
-
super(
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
interceptors,
|
|
2486
|
-
});
|
|
2487
|
-
}
|
|
2488
|
-
}
|
|
2489
|
-
|
|
2490
|
-
class CheckoutSubscriptionFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2491
|
-
constructor({ firestore, interceptors, }) {
|
|
2492
|
-
super({
|
|
2493
|
-
firestore,
|
|
2494
|
-
collectionName: 'checkoutsSubscription',
|
|
2495
|
-
model: CheckoutSubscription,
|
|
2496
|
-
interceptors,
|
|
2497
|
-
});
|
|
1749
|
+
constructor(firestore) {
|
|
1750
|
+
super();
|
|
1751
|
+
this.firestore = firestore;
|
|
1752
|
+
this.collectionName = 'checkouts';
|
|
1753
|
+
this.model = Checkout;
|
|
2498
1754
|
}
|
|
2499
1755
|
}
|
|
2500
1756
|
|
|
2501
1757
|
class CouponFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2502
|
-
constructor(
|
|
2503
|
-
super(
|
|
2504
|
-
|
|
2505
|
-
|
|
2506
|
-
|
|
2507
|
-
interceptors,
|
|
2508
|
-
});
|
|
1758
|
+
constructor(firestore) {
|
|
1759
|
+
super();
|
|
1760
|
+
this.firestore = firestore;
|
|
1761
|
+
this.collectionName = 'coupons';
|
|
1762
|
+
this.model = Coupon;
|
|
2509
1763
|
}
|
|
2510
1764
|
buildModelInstance() {
|
|
2511
1765
|
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
@@ -2527,16 +1781,9 @@ class CouponFirestoreRepository extends withCrudFirestore(withHelpers(withFirest
|
|
|
2527
1781
|
}
|
|
2528
1782
|
|
|
2529
1783
|
class OrderFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2530
|
-
constructor(
|
|
2531
|
-
super(
|
|
2532
|
-
|
|
2533
|
-
collectionName: 'orders',
|
|
2534
|
-
model: Order,
|
|
2535
|
-
interceptors,
|
|
2536
|
-
fields: {
|
|
2537
|
-
status: FirestoreFieldType.String,
|
|
2538
|
-
},
|
|
2539
|
-
});
|
|
1784
|
+
constructor(firestore) {
|
|
1785
|
+
super();
|
|
1786
|
+
this.firestore = firestore;
|
|
2540
1787
|
this.orderFromFirestore = (order) => {
|
|
2541
1788
|
var _a;
|
|
2542
1789
|
if (!!((_a = order === null || order === void 0 ? void 0 : order.lineItems) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
@@ -2550,6 +1797,11 @@ class OrderFirestoreRepository extends withCrudFirestore(withHelpers(withFiresto
|
|
|
2550
1797
|
}
|
|
2551
1798
|
return order;
|
|
2552
1799
|
};
|
|
1800
|
+
this.collectionName = 'orders';
|
|
1801
|
+
this.model = Order;
|
|
1802
|
+
this.fields = {
|
|
1803
|
+
status: FirestoreFieldType.String,
|
|
1804
|
+
};
|
|
2553
1805
|
}
|
|
2554
1806
|
buildModelInstance() {
|
|
2555
1807
|
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
@@ -2563,62 +1815,86 @@ class OrderFirestoreRepository extends withCrudFirestore(withHelpers(withFiresto
|
|
|
2563
1815
|
}
|
|
2564
1816
|
}
|
|
2565
1817
|
|
|
2566
|
-
class
|
|
2567
|
-
constructor(
|
|
2568
|
-
super(
|
|
2569
|
-
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
this.collectionName = 'legacyOrders';
|
|
1818
|
+
class PaymentFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
1819
|
+
constructor(firestore) {
|
|
1820
|
+
super();
|
|
1821
|
+
this.firestore = firestore;
|
|
1822
|
+
this.collectionName = 'payments';
|
|
1823
|
+
this.model = Payment;
|
|
2573
1824
|
}
|
|
2574
1825
|
}
|
|
2575
1826
|
|
|
2576
|
-
class
|
|
2577
|
-
constructor(
|
|
2578
|
-
super(
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
interceptors,
|
|
2583
|
-
});
|
|
1827
|
+
class CheckoutSubscriptionFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
1828
|
+
constructor(firestore) {
|
|
1829
|
+
super();
|
|
1830
|
+
this.firestore = firestore;
|
|
1831
|
+
this.collectionName = 'checkoutsSubscription';
|
|
1832
|
+
this.model = CheckoutSubscription;
|
|
2584
1833
|
}
|
|
2585
1834
|
}
|
|
2586
1835
|
|
|
2587
1836
|
class SubscriptionPlanFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2588
|
-
constructor(
|
|
2589
|
-
super(
|
|
2590
|
-
|
|
2591
|
-
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
1837
|
+
constructor(firestore) {
|
|
1838
|
+
super();
|
|
1839
|
+
this.firestore = firestore;
|
|
1840
|
+
this.collectionName = 'subscriptionPlans';
|
|
1841
|
+
this.model = SubscriptionPlan;
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
class Buy2WinFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
1846
|
+
constructor(firestore) {
|
|
1847
|
+
super();
|
|
1848
|
+
this.firestore = firestore;
|
|
1849
|
+
this.collectionName = 'buy2win';
|
|
1850
|
+
this.model = Buy2Win;
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1854
|
+
class LegacyOrderFirestoreRepository extends OrderFirestoreRepository {
|
|
1855
|
+
constructor(firestore) {
|
|
1856
|
+
super(firestore);
|
|
1857
|
+
this.firestore = firestore;
|
|
1858
|
+
this.collectionName = 'legacyOrders';
|
|
2595
1859
|
}
|
|
2596
1860
|
}
|
|
2597
1861
|
|
|
2598
1862
|
class HomeFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2599
|
-
constructor(
|
|
2600
|
-
super(
|
|
2601
|
-
|
|
2602
|
-
|
|
2603
|
-
|
|
2604
|
-
|
|
2605
|
-
|
|
2606
|
-
|
|
2607
|
-
|
|
2608
|
-
|
|
2609
|
-
|
|
2610
|
-
? (_b = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category) === null || _b === void 0 ? void 0 : _b.toPlain()
|
|
2611
|
-
: homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.category,
|
|
2612
|
-
products: ((_c = homeCategoryGroup === null || homeCategoryGroup === void 0 ? void 0 : homeCategoryGroup.products) === null || _c === void 0 ? void 0 : _c.map((product) => ((product === null || product === void 0 ? void 0 : product.toPlain) ? product === null || product === void 0 ? void 0 : product.toPlain() : product)).filter(Boolean)) || [],
|
|
2613
|
-
});
|
|
1863
|
+
constructor(firestore) {
|
|
1864
|
+
super();
|
|
1865
|
+
this.firestore = firestore;
|
|
1866
|
+
this.homeToFirestore = (home) => {
|
|
1867
|
+
var _a;
|
|
1868
|
+
if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
|
|
1869
|
+
home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.homeCategoryGroupToPlain);
|
|
1870
|
+
home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.homeCategoryGroupToPlain);
|
|
1871
|
+
home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.homeCategoryGroupToPlain);
|
|
1872
|
+
}
|
|
1873
|
+
return home;
|
|
2614
1874
|
};
|
|
2615
|
-
this.
|
|
1875
|
+
this.homeCategoryGroupToPlain = (homeCategoryGroup) => ({
|
|
1876
|
+
category: homeCategoryGroup.category.toPlain(),
|
|
1877
|
+
products: homeCategoryGroup.products.map((product) => product.toPlain()),
|
|
1878
|
+
});
|
|
1879
|
+
this.homeFromFirestore = (home) => {
|
|
2616
1880
|
var _a;
|
|
2617
|
-
|
|
2618
|
-
|
|
2619
|
-
|
|
2620
|
-
|
|
1881
|
+
if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
|
|
1882
|
+
home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.plainToHomeCategoryGroup);
|
|
1883
|
+
home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.plainToHomeCategoryGroup);
|
|
1884
|
+
home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.plainToHomeCategoryGroup);
|
|
1885
|
+
home.data.createdAt =
|
|
1886
|
+
home.data.createdAt instanceof Timestamp ? home.data.createdAt.toDate() : home.data.createdAt;
|
|
1887
|
+
home.data.expiresAt =
|
|
1888
|
+
home.data.expiresAt instanceof Timestamp ? home.data.expiresAt.toDate() : home.data.expiresAt;
|
|
1889
|
+
}
|
|
1890
|
+
return home;
|
|
2621
1891
|
};
|
|
1892
|
+
this.plainToHomeCategoryGroup = (homeCategoryGroup) => ({
|
|
1893
|
+
category: Category.toInstance(homeCategoryGroup.category),
|
|
1894
|
+
products: homeCategoryGroup.products.map((product) => Product.toInstance(product)),
|
|
1895
|
+
});
|
|
1896
|
+
this.collectionName = 'dms';
|
|
1897
|
+
this.model = Home;
|
|
2622
1898
|
}
|
|
2623
1899
|
buildModelInstance() {
|
|
2624
1900
|
const { fromFirestore, toFirestore } = super.buildModelInstance();
|
|
@@ -2633,49 +1909,14 @@ class HomeFirestoreRepository extends withCrudFirestore(withHelpers(withFirestor
|
|
|
2633
1909
|
},
|
|
2634
1910
|
};
|
|
2635
1911
|
}
|
|
2636
|
-
homeToFirestore(home) {
|
|
2637
|
-
var _a, _b, _c, _d;
|
|
2638
|
-
if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
|
|
2639
|
-
home.data.data.discoverProducts = ((_b = home.data.data.discoverProducts) === null || _b === void 0 ? void 0 : _b.map(this.homeCategoryGroupToPlain)) || [];
|
|
2640
|
-
home.data.data.featuredProducts = ((_c = home.data.data.featuredProducts) === null || _c === void 0 ? void 0 : _c.map(this.homeCategoryGroupToPlain)) || [];
|
|
2641
|
-
home.data.data.verticalProducts = ((_d = home.data.data.verticalProducts) === null || _d === void 0 ? void 0 : _d.map(this.homeCategoryGroupToPlain)) || [];
|
|
2642
|
-
}
|
|
2643
|
-
return home;
|
|
2644
|
-
}
|
|
2645
|
-
homeFromFirestore(home) {
|
|
2646
|
-
var _a;
|
|
2647
|
-
if ((_a = home.data) === null || _a === void 0 ? void 0 : _a.data) {
|
|
2648
|
-
home.data.data.discoverProducts = home.data.data.discoverProducts.map(this.plainToHomeCategoryGroup);
|
|
2649
|
-
home.data.data.featuredProducts = home.data.data.featuredProducts.map(this.plainToHomeCategoryGroup);
|
|
2650
|
-
home.data.data.verticalProducts = home.data.data.verticalProducts.map(this.plainToHomeCategoryGroup);
|
|
2651
|
-
home.data.createdAt =
|
|
2652
|
-
home.data.createdAt instanceof Timestamp ? home.data.createdAt.toDate() : home.data.createdAt;
|
|
2653
|
-
home.data.expiresAt =
|
|
2654
|
-
home.data.expiresAt instanceof Timestamp ? home.data.expiresAt.toDate() : home.data.expiresAt;
|
|
2655
|
-
}
|
|
2656
|
-
return home;
|
|
2657
|
-
}
|
|
2658
1912
|
}
|
|
2659
1913
|
|
|
2660
1914
|
class ShopMenuFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2661
|
-
constructor(
|
|
2662
|
-
super(
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
interceptors,
|
|
2667
|
-
});
|
|
2668
|
-
}
|
|
2669
|
-
}
|
|
2670
|
-
|
|
2671
|
-
class ShopSettingsFirestoreRepository extends withCrudFirestore(withHelpers(withFirestore(Base))) {
|
|
2672
|
-
constructor({ firestore, interceptors, }) {
|
|
2673
|
-
super({
|
|
2674
|
-
firestore,
|
|
2675
|
-
collectionName: 'shopSettings',
|
|
2676
|
-
model: ShopSettings,
|
|
2677
|
-
interceptors,
|
|
2678
|
-
});
|
|
1915
|
+
constructor(firestore) {
|
|
1916
|
+
super();
|
|
1917
|
+
this.firestore = firestore;
|
|
1918
|
+
this.collectionName = 'shopMenus';
|
|
1919
|
+
this.model = ShopMenu;
|
|
2679
1920
|
}
|
|
2680
1921
|
}
|
|
2681
1922
|
|
|
@@ -2765,7 +2006,7 @@ class AttributeOptionHelper {
|
|
|
2765
2006
|
AttributeOptionHelper.FindByAttribute = (attributeName, fields) => {
|
|
2766
2007
|
var _a;
|
|
2767
2008
|
if (fields.includes(attributeName))
|
|
2768
|
-
return { columnName: attributeName.toString(), attributeName
|
|
2009
|
+
return { columnName: attributeName.toString(), attributeName };
|
|
2769
2010
|
const field = fields.find((columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()));
|
|
2770
2011
|
const fieldOption = (_a = is(field)) === null || _a === void 0 ? void 0 : _a[attributeName];
|
|
2771
2012
|
if (isNil(fieldOption))
|
|
@@ -2774,7 +2015,7 @@ AttributeOptionHelper.FindByAttribute = (attributeName, fields) => {
|
|
|
2774
2015
|
return { columnName: attributeName.toString(), attributeName, fields: fieldOption };
|
|
2775
2016
|
return Object.assign({ attributeName, columnName: attributeName.toString() }, fieldOption);
|
|
2776
2017
|
};
|
|
2777
|
-
AttributeOptionHelper.CheckIsColumnOption = (fieldValue) => !!
|
|
2018
|
+
AttributeOptionHelper.CheckIsColumnOption = (fieldValue) => !!fieldValue.columnName;
|
|
2778
2019
|
AttributeOptionHelper.FindColumnOptionFromList = (columnName, fields) => {
|
|
2779
2020
|
if (fields.includes(columnName))
|
|
2780
2021
|
return { columnName, attributeName: columnName };
|
|
@@ -2854,23 +2095,22 @@ BindFilterQueryHelper.MakeGraphQLWhere = (filter, fields) => Object.keys(filter)
|
|
|
2854
2095
|
}, {});
|
|
2855
2096
|
BindFilterQueryHelper.BuildWhereSentence = (field, options, fields) => {
|
|
2856
2097
|
const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
|
|
2857
|
-
|
|
2098
|
+
if (!Array.isArray(options) &&
|
|
2858
2099
|
isObject(options) &&
|
|
2859
2100
|
isNil(options === null || options === void 0 ? void 0 : options.operator) &&
|
|
2860
2101
|
isNil(options === null || options === void 0 ? void 0 : options.value) &&
|
|
2861
|
-
isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to)
|
|
2862
|
-
if (isNestedField)
|
|
2102
|
+
isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to))
|
|
2863
2103
|
return Object.keys(options).reduce((variables, key) => {
|
|
2864
2104
|
const fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
|
|
2865
2105
|
const columnName = fieldOptions.columnName;
|
|
2866
2106
|
const columnFields = fieldOptions.fields;
|
|
2867
|
-
return Object.assign(Object.assign({}, variables), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, is(is(options)[key]),
|
|
2107
|
+
return Object.assign(Object.assign({}, variables), { [columnName]: BindFilterQueryHelper.BuildWhereSentence(key, is(is(options)[key]), columnFields || []) });
|
|
2868
2108
|
}, {});
|
|
2869
2109
|
if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))
|
|
2870
2110
|
return {
|
|
2871
2111
|
[fieldSentenceOptions.fields[0]]: BindFilterQueryHelper.BuildOperatorSentence(options, fieldSentenceOptions),
|
|
2872
2112
|
};
|
|
2873
|
-
if (
|
|
2113
|
+
if (isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
|
|
2874
2114
|
options = Object.values(options)[0];
|
|
2875
2115
|
return Array.isArray(options)
|
|
2876
2116
|
? options.reduce((whereSentence, option) => (Object.assign(Object.assign({}, whereSentence), BindFilterQueryHelper.BuildOperatorSentence(option, fieldSentenceOptions))), {})
|
|
@@ -2902,18 +2142,33 @@ GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = (fields) => {
|
|
|
2902
2142
|
if (field === 'affected_rows')
|
|
2903
2143
|
return field;
|
|
2904
2144
|
const fieldName = Object.keys(field).shift();
|
|
2905
|
-
const fieldValue =
|
|
2145
|
+
const fieldValue = field[fieldName];
|
|
2906
2146
|
if (Array.isArray(fieldValue))
|
|
2907
2147
|
return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) };
|
|
2908
2148
|
if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
|
|
2909
|
-
return;
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2149
|
+
return null;
|
|
2150
|
+
if (fieldValue.fields)
|
|
2151
|
+
return !fieldValue.filters
|
|
2152
|
+
? {
|
|
2153
|
+
[fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
2154
|
+
}
|
|
2155
|
+
: {
|
|
2156
|
+
operation: fieldValue.columnName || fieldName,
|
|
2157
|
+
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
2158
|
+
variables: {
|
|
2159
|
+
[`${fieldValue.columnName}_where`]: {
|
|
2160
|
+
name: 'where',
|
|
2161
|
+
type: fieldValue.filters.filterType,
|
|
2162
|
+
value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
|
|
2163
|
+
required: true,
|
|
2164
|
+
},
|
|
2165
|
+
},
|
|
2166
|
+
};
|
|
2913
2167
|
return fieldValue.columnName;
|
|
2914
2168
|
}).filter((field) => !!field);
|
|
2915
2169
|
};
|
|
2916
2170
|
GraphQLFieldHelper.ConvertFieldValueFrom = (data, fields) => Object.keys(data).reduce((result, columnName) => {
|
|
2171
|
+
var _a;
|
|
2917
2172
|
const { attributeName, fields: attributeFields, from, } = AttributeOptionHelper.FindColumnOptionFromList(columnName, fields);
|
|
2918
2173
|
if (!!attributeFields && Array.isArray(attributeFields)) {
|
|
2919
2174
|
if (Array.isArray(data[columnName]))
|
|
@@ -2927,7 +2182,7 @@ GraphQLFieldHelper.ConvertFieldValueFrom = (data, fields) => Object.keys(data).r
|
|
|
2927
2182
|
}
|
|
2928
2183
|
if (!!from)
|
|
2929
2184
|
return Object.assign(Object.assign({}, result), { [attributeName]: from(data[columnName], data) });
|
|
2930
|
-
return Object.assign(Object.assign({}, result), { [attributeName]:
|
|
2185
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: parseDateTime((_a = data[columnName]) === null || _a === void 0 ? void 0 : _a.toString()) });
|
|
2931
2186
|
}, {});
|
|
2932
2187
|
GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
|
|
2933
2188
|
var _a;
|
|
@@ -2943,8 +2198,7 @@ GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
|
|
|
2943
2198
|
!Object.keys(foreignKeyColumn).filter((key) => { var _a; return !((_a = is(data[attributeName])) === null || _a === void 0 ? void 0 : _a[key]); }).length)
|
|
2944
2199
|
return Object.keys(foreignKeyColumn).reduce((object, current) => {
|
|
2945
2200
|
var _a;
|
|
2946
|
-
|
|
2947
|
-
return Object.assign(Object.assign({}, object), { [foreignColumnName]: (_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[current] });
|
|
2201
|
+
return (Object.assign(Object.assign({}, object), { [foreignKeyColumn[current]]: (_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[current] }));
|
|
2948
2202
|
}, Object.assign({}, result));
|
|
2949
2203
|
if (update &&
|
|
2950
2204
|
isObject(data[attributeName]) &&
|
|
@@ -2972,25 +2226,6 @@ GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
|
|
|
2972
2226
|
return Object.assign(Object.assign({}, result), { [columnName]: data[attributeName] });
|
|
2973
2227
|
}, {});
|
|
2974
2228
|
};
|
|
2975
|
-
GraphQLFieldHelper.ConvertNestedFieldsToGraphQLFields = (fieldName, fieldValue) => {
|
|
2976
|
-
const hasCustomFilters = !!fieldValue.filters;
|
|
2977
|
-
if (hasCustomFilters)
|
|
2978
|
-
return {
|
|
2979
|
-
operation: fieldValue.columnName || fieldName,
|
|
2980
|
-
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
2981
|
-
variables: {
|
|
2982
|
-
[`${fieldValue.columnName}_where`]: {
|
|
2983
|
-
name: 'where',
|
|
2984
|
-
type: fieldValue.filters.filterType,
|
|
2985
|
-
value: BindFilterQueryHelper.MakeGraphQLWhere(fieldValue.filters.filters, fieldValue.fields),
|
|
2986
|
-
required: true,
|
|
2987
|
-
},
|
|
2988
|
-
},
|
|
2989
|
-
};
|
|
2990
|
-
return {
|
|
2991
|
-
[fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
2992
|
-
};
|
|
2993
|
-
};
|
|
2994
2229
|
|
|
2995
2230
|
const withCreateHasuraGraphQL = (MixinBase) => {
|
|
2996
2231
|
return class CreateHasuraGraphQLMixin extends MixinBase {
|
|
@@ -3002,7 +2237,6 @@ const withCreateHasuraGraphQL = (MixinBase) => {
|
|
|
3002
2237
|
}
|
|
3003
2238
|
create(data) {
|
|
3004
2239
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3005
|
-
this.logger = DebugHelper.from(this, 'create');
|
|
3006
2240
|
const newData = yield this.save(this.model.toInstance(data));
|
|
3007
2241
|
return this.model.toInstance(newData);
|
|
3008
2242
|
});
|
|
@@ -3015,11 +2249,12 @@ const withCreateHasuraGraphQL = (MixinBase) => {
|
|
|
3015
2249
|
const columnOptions = Object.values(field).shift();
|
|
3016
2250
|
return (AttributeOptionHelper.CheckIsColumnOption(columnOptions) &&
|
|
3017
2251
|
columnOptions.foreignKeyColumn && [
|
|
3018
|
-
...Object.values(columnOptions.foreignKeyColumn)
|
|
2252
|
+
...Object.values(columnOptions.foreignKeyColumn),
|
|
3019
2253
|
{
|
|
3020
2254
|
[columnOptions.columnName]: Object.keys(columnOptions.foreignKeyColumn).map((foreignKeyField) => {
|
|
3021
2255
|
var _a;
|
|
3022
|
-
return ((_a = AttributeOptionHelper.FindByAttribute(foreignKeyField, columnOptions === null || columnOptions === void 0 ? void 0 : columnOptions.fields)) === null || _a === void 0 ? void 0 : _a.columnName) ||
|
|
2256
|
+
return ((_a = AttributeOptionHelper.FindByAttribute(foreignKeyField, columnOptions === null || columnOptions === void 0 ? void 0 : columnOptions.fields)) === null || _a === void 0 ? void 0 : _a.columnName) ||
|
|
2257
|
+
foreignKeyField;
|
|
3023
2258
|
}),
|
|
3024
2259
|
},
|
|
3025
2260
|
]);
|
|
@@ -3044,11 +2279,9 @@ const withDeleteHasuraGraphQL = (MixinBase) => {
|
|
|
3044
2279
|
}
|
|
3045
2280
|
delete(identifiers) {
|
|
3046
2281
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3047
|
-
this.logger = DebugHelper.from(this, 'delete');
|
|
3048
2282
|
const instance = this.model.toInstance(identifiers);
|
|
3049
2283
|
yield this.mutation(this.deleteGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), this.model.identifiersFields.reduce((ids, identifier) => {
|
|
3050
|
-
|
|
3051
|
-
if (isNil(instance.identifier[identifierBinded]))
|
|
2284
|
+
if (isNil(instance[identifier]))
|
|
3052
2285
|
return ids;
|
|
3053
2286
|
const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
|
|
3054
2287
|
const value = columnOption.to(identifiers[identifier], instance);
|
|
@@ -3073,16 +2306,11 @@ const withHasuraGraphQL = (MixinBase) => {
|
|
|
3073
2306
|
this.authOptions = options.authOptions;
|
|
3074
2307
|
this.model = options.model;
|
|
3075
2308
|
this.fields = options.fields || this.model.identifiersFields;
|
|
3076
|
-
this.logger = DebugHelper.from(this);
|
|
3077
2309
|
}
|
|
3078
2310
|
get headers() {
|
|
3079
|
-
|
|
3080
|
-
return Object.assign(Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (isNil((_a = this.authOptions) === null || _a === void 0 ? void 0 : _a.authToken) ? {} : { Authorization: (_b = this.authOptions) === null || _b === void 0 ? void 0 : _b.authToken })), (isNil((_c = this.authOptions) === null || _c === void 0 ? void 0 : _c.adminSecret) ? {} : { 'X-Hasura-Admin-Secret': (_d = this.authOptions) === null || _d === void 0 ? void 0 : _d.adminSecret })), (isNil((_e = this.authOptions) === null || _e === void 0 ? void 0 : _e.authRole)
|
|
2311
|
+
return Object.assign(Object.assign(Object.assign({ 'Content-Type': 'application/json' }, (isNil(this.authOptions.authToken) ? {} : { Authorization: this.authOptions.authToken })), (isNil(this.authOptions.adminSecret) ? {} : { 'X-Hasura-Admin-Secret': this.authOptions.adminSecret })), (isNil(this.authOptions.authRole)
|
|
3081
2312
|
? {}
|
|
3082
|
-
: {
|
|
3083
|
-
'X-Hasura-Role': this.authOptions.authRole.role,
|
|
3084
|
-
'X-Hasura-User-Id': (_g = (_f = this.authOptions) === null || _f === void 0 ? void 0 : _f.authRole) === null || _g === void 0 ? void 0 : _g.userId,
|
|
3085
|
-
}));
|
|
2313
|
+
: { 'X-Hasura-Role': this.authOptions.authRole.role, 'X-Hasura-User-Id': this.authOptions.authRole.userId }));
|
|
3086
2314
|
}
|
|
3087
2315
|
mutation(operation, fields, variables) {
|
|
3088
2316
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -3095,32 +2323,32 @@ const withHasuraGraphQL = (MixinBase) => {
|
|
|
3095
2323
|
});
|
|
3096
2324
|
}
|
|
3097
2325
|
query(operation, fields, variables) {
|
|
3098
|
-
var _a, _b, _c, _d;
|
|
3099
2326
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3100
|
-
const
|
|
3101
|
-
operation
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
2327
|
+
const resultQuery = GraphQLFieldHelper.CheckIsGraphQLParams(operation)
|
|
2328
|
+
? query$1(operation.map((option) => ({
|
|
2329
|
+
operation: option.operation,
|
|
2330
|
+
variables: option.variables,
|
|
2331
|
+
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),
|
|
2332
|
+
})))
|
|
2333
|
+
: query$1({
|
|
2334
|
+
operation,
|
|
2335
|
+
variables,
|
|
2336
|
+
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
|
|
2337
|
+
});
|
|
2338
|
+
return this.fetch(resultQuery);
|
|
3109
2339
|
});
|
|
3110
2340
|
}
|
|
3111
2341
|
fetch(params) {
|
|
3112
2342
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3113
|
-
this.logger.with('params').log(params);
|
|
3114
2343
|
const headers = this.headers;
|
|
3115
|
-
const
|
|
3116
|
-
url: `${this.endpoint}`,
|
|
2344
|
+
const response = yield fetch(`${this.endpoint}`, {
|
|
3117
2345
|
method: 'POST',
|
|
3118
|
-
|
|
2346
|
+
body: JSON.stringify(params),
|
|
3119
2347
|
headers,
|
|
3120
2348
|
});
|
|
2349
|
+
const result = yield response.json();
|
|
3121
2350
|
if (!isNil(result.errors))
|
|
3122
2351
|
throw new Error(JSON.stringify(result.errors));
|
|
3123
|
-
this.logger.with('returns').log(result);
|
|
3124
2352
|
return result.data;
|
|
3125
2353
|
});
|
|
3126
2354
|
}
|
|
@@ -3147,26 +2375,13 @@ const withHasuraGraphQL = (MixinBase) => {
|
|
|
3147
2375
|
return value;
|
|
3148
2376
|
return date;
|
|
3149
2377
|
}
|
|
3150
|
-
convertDataFromHasura(data
|
|
3151
|
-
const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data,
|
|
2378
|
+
convertDataFromHasura(data) {
|
|
2379
|
+
const plain = GraphQLFieldHelper.ConvertFieldValueFrom(data, this.fields);
|
|
3152
2380
|
return this.model.toInstance(plain);
|
|
3153
2381
|
}
|
|
3154
2382
|
convertDataToHasura(instance, update = false) {
|
|
3155
2383
|
return GraphQLFieldHelper.ConvertFieldValueTo(instance, this.fields, update);
|
|
3156
2384
|
}
|
|
3157
|
-
buildHasuraQueryFields({ operation, fields, variables, }) {
|
|
3158
|
-
return GraphQLFieldHelper.CheckIsGraphQLParams(operation)
|
|
3159
|
-
? operation.map((option) => ({
|
|
3160
|
-
operation: option.operation,
|
|
3161
|
-
variables: option.variables,
|
|
3162
|
-
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(option.fields),
|
|
3163
|
-
}))
|
|
3164
|
-
: {
|
|
3165
|
-
operation,
|
|
3166
|
-
variables,
|
|
3167
|
-
fields: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fields),
|
|
3168
|
-
};
|
|
3169
|
-
}
|
|
3170
2385
|
};
|
|
3171
2386
|
};
|
|
3172
2387
|
|
|
@@ -3190,7 +2405,6 @@ const withUpdateHasuraGraphQL = (MixinBase) => {
|
|
|
3190
2405
|
}
|
|
3191
2406
|
update(data) {
|
|
3192
2407
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3193
|
-
this.logger = DebugHelper.from(this, 'update');
|
|
3194
2408
|
const plainData = this.paramsToPlain(data);
|
|
3195
2409
|
yield this.mutation(this.updateGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), {
|
|
3196
2410
|
_set: {
|
|
@@ -3215,11 +2429,10 @@ const withUpdateHasuraGraphQL = (MixinBase) => {
|
|
|
3215
2429
|
const instance = this.model.toInstance(data);
|
|
3216
2430
|
return this.model.identifiersFields.reduce((ids, identifier) => {
|
|
3217
2431
|
var _a;
|
|
3218
|
-
|
|
3219
|
-
if (isNil(instance.identifier[identifierBinded]))
|
|
2432
|
+
if (isNil(instance[identifier]))
|
|
3220
2433
|
return ids;
|
|
3221
|
-
const columnOption = AttributeOptionHelper.FindByAttribute(
|
|
3222
|
-
const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, data[
|
|
2434
|
+
const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
|
|
2435
|
+
const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, data[identifier], instance)) || data[columnOption.attributeName];
|
|
3223
2436
|
return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: value });
|
|
3224
2437
|
}, {});
|
|
3225
2438
|
}
|
|
@@ -3235,12 +2448,10 @@ const withGetHasuraGraphQL = (MixinBase) => {
|
|
|
3235
2448
|
}
|
|
3236
2449
|
get(identifiers) {
|
|
3237
2450
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3238
|
-
this.logger = DebugHelper.from(this, 'get');
|
|
3239
2451
|
const instance = this.model.toInstance(identifiers);
|
|
3240
2452
|
const result = yield this.query(this.getGraphQLOperation, this.fields, this.model.identifiersFields.reduce((ids, identifier) => {
|
|
3241
2453
|
var _a;
|
|
3242
|
-
|
|
3243
|
-
if (isNil(instance[identifierBinded]))
|
|
2454
|
+
if (isNil(instance[identifier]))
|
|
3244
2455
|
return ids;
|
|
3245
2456
|
const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
|
|
3246
2457
|
const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, identifiers[identifier], instance)) ||
|
|
@@ -3262,46 +2473,10 @@ const withGetHasuraGraphQL = (MixinBase) => {
|
|
|
3262
2473
|
|
|
3263
2474
|
const withFindHasuraGraphQL = (MixinBase) => {
|
|
3264
2475
|
return class FindHasuraGraphQLMixin extends MixinBase {
|
|
3265
|
-
|
|
3266
|
-
super(...arguments);
|
|
3267
|
-
this.bindOrderByAttributes = (orderBy, fields) => Object.keys(orderBy).reduce((acc, current) => [
|
|
3268
|
-
...acc,
|
|
3269
|
-
{
|
|
3270
|
-
[AttributeOptionHelper.FindByAttribute(current, fields)
|
|
3271
|
-
.columnName]: orderBy[current] === 'asc'
|
|
3272
|
-
? 'asc_nulls_last'
|
|
3273
|
-
: 'desc_nulls_last',
|
|
3274
|
-
},
|
|
3275
|
-
], []);
|
|
3276
|
-
this.bindAggretageAttributes = (aggregates, fields) => {
|
|
3277
|
-
var _a, _b;
|
|
3278
|
-
return [
|
|
3279
|
-
...(((_a = aggregates === null || aggregates === void 0 ? void 0 : aggregates.minimal) === null || _a === void 0 ? void 0 : _a.length)
|
|
3280
|
-
? [
|
|
3281
|
-
{
|
|
3282
|
-
min: this.bindAttributesToColumns(aggregates === null || aggregates === void 0 ? void 0 : aggregates.minimal, fields),
|
|
3283
|
-
},
|
|
3284
|
-
]
|
|
3285
|
-
: []),
|
|
3286
|
-
...(((_b = aggregates === null || aggregates === void 0 ? void 0 : aggregates.maximum) === null || _b === void 0 ? void 0 : _b.length)
|
|
3287
|
-
? [
|
|
3288
|
-
{
|
|
3289
|
-
max: this.bindAttributesToColumns(aggregates === null || aggregates === void 0 ? void 0 : aggregates.maximum, fields),
|
|
3290
|
-
},
|
|
3291
|
-
]
|
|
3292
|
-
: []),
|
|
3293
|
-
];
|
|
3294
|
-
};
|
|
3295
|
-
this.bindDistinctAttributes = (distinct, fields) => this.bindAttributesToColumns(distinct, fields);
|
|
3296
|
-
this.bindAttributesToColumns = (attributes, fields) => attributes.map((attr) => { var _a; return ((_a = AttributeOptionHelper.FindByAttribute(attr.toString().split('.').pop(), fields)) === null || _a === void 0 ? void 0 : _a.columnName) || attr; });
|
|
3297
|
-
}
|
|
3298
|
-
find(params) {
|
|
3299
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
2476
|
+
find(options) {
|
|
3300
2477
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3301
|
-
|
|
3302
|
-
const
|
|
3303
|
-
const enableCount = (_a = options === null || options === void 0 ? void 0 : options.enableCount) !== null && _a !== void 0 ? _a : true;
|
|
3304
|
-
const variablesFilters = isNil(filters)
|
|
2478
|
+
const { filters, limits, orderBy } = options || {};
|
|
2479
|
+
const variablesCount = Object.assign(Object.assign({}, (isNil(orderBy) ? {} : { order_by: { type: `${this.tableName}_order_by!`, list: true, value: orderBy } })), (isNil(filters)
|
|
3305
2480
|
? {}
|
|
3306
2481
|
: {
|
|
3307
2482
|
where: {
|
|
@@ -3309,26 +2484,13 @@ const withFindHasuraGraphQL = (MixinBase) => {
|
|
|
3309
2484
|
type: `${this.tableName}_bool_exp`,
|
|
3310
2485
|
required: true,
|
|
3311
2486
|
},
|
|
3312
|
-
};
|
|
3313
|
-
const variablesCount = Object.assign(Object.assign({}, (isNil(orderBy)
|
|
3314
|
-
? {}
|
|
3315
|
-
: {
|
|
3316
|
-
order_by: {
|
|
3317
|
-
type: `${this.tableName}_order_by!`,
|
|
3318
|
-
list: true,
|
|
3319
|
-
value: this.bindOrderByAttributes(orderBy, this.fields),
|
|
3320
|
-
},
|
|
3321
|
-
})), variablesFilters);
|
|
2487
|
+
}));
|
|
3322
2488
|
const variables = Object.assign(Object.assign({}, (isNil(limits) ? {} : limits)), variablesCount);
|
|
3323
|
-
const aggregateFields = [
|
|
3324
|
-
...(enableCount ? ['count'] : []),
|
|
3325
|
-
...this.bindAggretageAttributes(params.options, this.fields),
|
|
3326
|
-
];
|
|
3327
2489
|
const result = yield this.query([
|
|
3328
2490
|
{
|
|
3329
2491
|
operation: this.tableName,
|
|
3330
|
-
fields:
|
|
3331
|
-
?
|
|
2492
|
+
fields: options.fields
|
|
2493
|
+
? options.fields
|
|
3332
2494
|
.map((fieldName) => {
|
|
3333
2495
|
var _a;
|
|
3334
2496
|
return (_a = this.fields.find((fieldOption) => fieldOption === fieldName)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === fieldName);
|
|
@@ -3337,64 +2499,15 @@ const withFindHasuraGraphQL = (MixinBase) => {
|
|
|
3337
2499
|
: this.fields,
|
|
3338
2500
|
variables,
|
|
3339
2501
|
},
|
|
3340
|
-
|
|
3341
|
-
|
|
3342
|
-
|
|
3343
|
-
|
|
3344
|
-
|
|
3345
|
-
{
|
|
3346
|
-
aggregate: aggregateFields,
|
|
3347
|
-
},
|
|
3348
|
-
],
|
|
3349
|
-
variables: variablesCount,
|
|
3350
|
-
},
|
|
3351
|
-
]
|
|
3352
|
-
: []),
|
|
3353
|
-
...((!((_b = params.limits) === null || _b === void 0 ? void 0 : _b.offset) &&
|
|
3354
|
-
((_d = (_c = params.options) === null || _c === void 0 ? void 0 : _c.distinct) === null || _d === void 0 ? void 0 : _d.map((distinct) => {
|
|
3355
|
-
var _a, _b;
|
|
3356
|
-
const distinctOption = (_a = this.fields.find((fieldOption) => fieldOption === distinct)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === distinct);
|
|
3357
|
-
const fieldName = ((_b = Object.values(distinctOption).shift()) === null || _b === void 0 ? void 0 : _b.columnName) || distinct;
|
|
3358
|
-
return {
|
|
3359
|
-
operation: {
|
|
3360
|
-
name: `${this.tableName}`,
|
|
3361
|
-
alias: `${this.tableName}_${distinct.toString()}_distinct`,
|
|
3362
|
-
},
|
|
3363
|
-
fields: [distinctOption],
|
|
3364
|
-
variables: Object.assign(Object.assign({}, variablesFilters), { [`${this.tableName}_${fieldName}_distinct`]: {
|
|
3365
|
-
type: `${this.tableName}_select_column!`,
|
|
3366
|
-
list: true,
|
|
3367
|
-
value: fieldName,
|
|
3368
|
-
name: 'distinct_on',
|
|
3369
|
-
} }),
|
|
3370
|
-
};
|
|
3371
|
-
}))) ||
|
|
3372
|
-
[]),
|
|
2502
|
+
{
|
|
2503
|
+
operation: `${this.tableName}_aggregate`,
|
|
2504
|
+
fields: [{ aggregate: ['count'] }],
|
|
2505
|
+
variables: variablesCount,
|
|
2506
|
+
},
|
|
3373
2507
|
]);
|
|
3374
2508
|
const data = result[this.tableName].map((row) => this.convertDataFromHasura(row));
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
minimal: options.minimal.reduce((minimals, current) => {
|
|
3378
|
-
var _a;
|
|
3379
|
-
return (Object.assign(Object.assign({}, minimals), set(minimals, current, result[`${this.tableName}_aggregate`].aggregate.min[((_a = AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)) === null || _a === void 0 ? void 0 : _a.columnName) || current])));
|
|
3380
|
-
}, {}),
|
|
3381
|
-
}
|
|
3382
|
-
: {})), (((_f = options === null || options === void 0 ? void 0 : options.maximum) === null || _f === void 0 ? void 0 : _f.length)
|
|
3383
|
-
? {
|
|
3384
|
-
maximum: options.maximum.reduce((maximums, current) => {
|
|
3385
|
-
var _a;
|
|
3386
|
-
return (Object.assign(Object.assign({}, maximums), set(maximums, current, result[`${this.tableName}_aggregate`].aggregate.max[((_a = AttributeOptionHelper.FindByAttribute(current.toString().split('.').pop(), this.fields)) === null || _a === void 0 ? void 0 : _a.columnName) || current])));
|
|
3387
|
-
}, {}),
|
|
3388
|
-
}
|
|
3389
|
-
: {})), (!((_g = params.limits) === null || _g === void 0 ? void 0 : _g.offset) &&
|
|
3390
|
-
((_h = options === null || options === void 0 ? void 0 : options.distinct) === null || _h === void 0 ? void 0 : _h.length) && {
|
|
3391
|
-
distinct: options === null || options === void 0 ? void 0 : options.distinct.reduce((distinct, current) => {
|
|
3392
|
-
var _a, _b;
|
|
3393
|
-
const distinctOption = (_a = this.fields.find((fieldOption) => fieldOption === current)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === current);
|
|
3394
|
-
const fieldName = ((_b = Object.values(distinctOption).shift()) === null || _b === void 0 ? void 0 : _b.columnName) || current;
|
|
3395
|
-
return Object.assign(Object.assign({}, distinct), { [current.toString()]: result[`${this.tableName}_${current.toString()}_distinct`].map((obj) => obj[fieldName]) });
|
|
3396
|
-
}, {}),
|
|
3397
|
-
}));
|
|
2509
|
+
const count = result[`${this.tableName}_aggregate`].aggregate.count;
|
|
2510
|
+
return { count, data };
|
|
3398
2511
|
});
|
|
3399
2512
|
}
|
|
3400
2513
|
};
|
|
@@ -3434,154 +2547,13 @@ class VariantHasuraGraphQL extends Variant {
|
|
|
3434
2547
|
}
|
|
3435
2548
|
}
|
|
3436
2549
|
|
|
3437
|
-
class CategoryCollectionChildrenHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
3438
|
-
constructor({ endpoint, authOptions, interceptors, }) {
|
|
3439
|
-
super({
|
|
3440
|
-
tableName: 'category_collection_children',
|
|
3441
|
-
model: CategoryCollectionChildren,
|
|
3442
|
-
endpoint,
|
|
3443
|
-
authOptions,
|
|
3444
|
-
interceptors,
|
|
3445
|
-
fields: [
|
|
3446
|
-
{ collectionId: { columnName: 'collection_id' } },
|
|
3447
|
-
{ categoryId: { columnName: 'category_id' } },
|
|
3448
|
-
'name',
|
|
3449
|
-
'slug',
|
|
3450
|
-
'reference',
|
|
3451
|
-
{ parentCollectionId: { columnName: 'parent_collection_id' } },
|
|
3452
|
-
{ parentCategoryId: { columnName: 'parent_category_id' } },
|
|
3453
|
-
{
|
|
3454
|
-
parent: {
|
|
3455
|
-
columnName: 'parent',
|
|
3456
|
-
foreignKeyColumn: { collectionId: 'parentCollectionId', categoryId: 'parentCategoryId' },
|
|
3457
|
-
fields: [
|
|
3458
|
-
{ collectionId: { columnName: 'collection_id' } },
|
|
3459
|
-
{ categoryId: { columnName: 'category_id' } },
|
|
3460
|
-
'name',
|
|
3461
|
-
'slug',
|
|
3462
|
-
'reference',
|
|
3463
|
-
{ parentCollectionId: { columnName: 'parent_collection_id' } },
|
|
3464
|
-
{ parentCategoryId: { columnName: 'parent_category_id' } },
|
|
3465
|
-
],
|
|
3466
|
-
},
|
|
3467
|
-
},
|
|
3468
|
-
],
|
|
3469
|
-
});
|
|
3470
|
-
}
|
|
3471
|
-
}
|
|
3472
|
-
|
|
3473
|
-
class CategoryFilterHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
3474
|
-
constructor({ endpoint, authOptions, interceptors, }) {
|
|
3475
|
-
super({
|
|
3476
|
-
tableName: 'category_filter',
|
|
3477
|
-
model: CategoryFilter,
|
|
3478
|
-
endpoint,
|
|
3479
|
-
authOptions,
|
|
3480
|
-
interceptors,
|
|
3481
|
-
fields: [
|
|
3482
|
-
'id',
|
|
3483
|
-
{ filterId: { columnName: 'filter_id' } },
|
|
3484
|
-
{ categoryId: { columnName: 'category_id' } },
|
|
3485
|
-
{
|
|
3486
|
-
filter: {
|
|
3487
|
-
columnName: 'filter',
|
|
3488
|
-
foreignKeyColumn: { id: 'filterId' },
|
|
3489
|
-
fields: [
|
|
3490
|
-
'id',
|
|
3491
|
-
'description',
|
|
3492
|
-
'slug',
|
|
3493
|
-
'enabled',
|
|
3494
|
-
{ createdAt: { columnName: 'created_at' } },
|
|
3495
|
-
{ updatedAt: { columnName: 'updated_at' } },
|
|
3496
|
-
{
|
|
3497
|
-
options: {
|
|
3498
|
-
columnName: 'options',
|
|
3499
|
-
foreignKeyColumn: { filterId: 'id' },
|
|
3500
|
-
fields: [
|
|
3501
|
-
'id',
|
|
3502
|
-
{ filterId: { columnName: 'filter_id' } },
|
|
3503
|
-
'description',
|
|
3504
|
-
{ createdAt: { columnName: 'created_at' } },
|
|
3505
|
-
{ updatedAt: { columnName: 'updated_at' } },
|
|
3506
|
-
],
|
|
3507
|
-
},
|
|
3508
|
-
},
|
|
3509
|
-
],
|
|
3510
|
-
},
|
|
3511
|
-
},
|
|
3512
|
-
{
|
|
3513
|
-
category: {
|
|
3514
|
-
columnName: 'category',
|
|
3515
|
-
foreignKeyColumn: { id: 'categoryId' },
|
|
3516
|
-
fields: [
|
|
3517
|
-
'id',
|
|
3518
|
-
'description',
|
|
3519
|
-
{
|
|
3520
|
-
products: {
|
|
3521
|
-
columnName: 'products',
|
|
3522
|
-
fields: ['product_id'],
|
|
3523
|
-
from: (value) => value.map((product) => product.product_id.toString()),
|
|
3524
|
-
to: (productIds) => productIds.map((productId) => ({
|
|
3525
|
-
product_id: +productId,
|
|
3526
|
-
})),
|
|
3527
|
-
},
|
|
3528
|
-
},
|
|
3529
|
-
{
|
|
3530
|
-
childrenProducts: {
|
|
3531
|
-
columnName: 'children_products',
|
|
3532
|
-
foreignKeyColumn: { category_id: 'id' },
|
|
3533
|
-
fields: [
|
|
3534
|
-
'id',
|
|
3535
|
-
'name',
|
|
3536
|
-
'slug',
|
|
3537
|
-
{
|
|
3538
|
-
categories: {
|
|
3539
|
-
columnName: 'categories',
|
|
3540
|
-
fields: ['category_id'],
|
|
3541
|
-
bindPersistData: (value) => ({
|
|
3542
|
-
categories: { data: value.map((category) => ({ category_id: +category })) },
|
|
3543
|
-
}),
|
|
3544
|
-
to: (categories) => categories.map((categoryId) => +categoryId),
|
|
3545
|
-
from: (categories) => (categories === null || categories === void 0 ? void 0 : categories.map((category) => { var _a; return (_a = category === null || category === void 0 ? void 0 : category.category_id) === null || _a === void 0 ? void 0 : _a.toString(); })) || [],
|
|
3546
|
-
},
|
|
3547
|
-
},
|
|
3548
|
-
],
|
|
3549
|
-
},
|
|
3550
|
-
},
|
|
3551
|
-
],
|
|
3552
|
-
},
|
|
3553
|
-
},
|
|
3554
|
-
],
|
|
3555
|
-
});
|
|
3556
|
-
}
|
|
3557
|
-
deleteByCategory(categoryId) {
|
|
3558
|
-
return this.mutation('delete_category_filter', ['affected_rows'], {
|
|
3559
|
-
where: {
|
|
3560
|
-
type: 'category_filter_bool_exp',
|
|
3561
|
-
required: true,
|
|
3562
|
-
value: { category_id: { _eq: categoryId } },
|
|
3563
|
-
},
|
|
3564
|
-
});
|
|
3565
|
-
}
|
|
3566
|
-
deleteByCategoryAndFilter(categoryId, filterId) {
|
|
3567
|
-
return this.mutation('delete_category_filter', ['affected_rows'], {
|
|
3568
|
-
where: {
|
|
3569
|
-
type: 'category_filter_bool_exp',
|
|
3570
|
-
required: true,
|
|
3571
|
-
value: { category_id: { _eq: categoryId }, filter_id: { _eq: filterId } },
|
|
3572
|
-
},
|
|
3573
|
-
});
|
|
3574
|
-
}
|
|
3575
|
-
}
|
|
3576
|
-
|
|
3577
2550
|
class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
3578
|
-
constructor(
|
|
2551
|
+
constructor(endpoint, authOptions, productRepository) {
|
|
3579
2552
|
super({
|
|
3580
2553
|
tableName: 'category',
|
|
3581
2554
|
model: Category,
|
|
3582
2555
|
endpoint,
|
|
3583
2556
|
authOptions,
|
|
3584
|
-
interceptors,
|
|
3585
2557
|
fields: [
|
|
3586
2558
|
{ id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
|
|
3587
2559
|
{ firestoreId: { columnName: 'firestore_id' } },
|
|
@@ -3590,7 +2562,6 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3590
2562
|
'image',
|
|
3591
2563
|
'published',
|
|
3592
2564
|
'shop',
|
|
3593
|
-
{ shops: { columnName: 'shops', type: HasuraGraphQLColumnType.Jsonb } },
|
|
3594
2565
|
'slug',
|
|
3595
2566
|
{ brandCategory: { columnName: 'brand_category' } },
|
|
3596
2567
|
{ brandCategoryBanner: { columnName: 'brand_banner' } },
|
|
@@ -3616,19 +2587,9 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3616
2587
|
},
|
|
3617
2588
|
},
|
|
3618
2589
|
},
|
|
3619
|
-
|
|
3620
|
-
|
|
3621
|
-
|
|
3622
|
-
foreignKeyColumn: { filter_id: 'id' },
|
|
3623
|
-
fields: [{ filter: ['id', 'description', 'slug', 'enabled'] }],
|
|
3624
|
-
bindPersistData: (value) => ({
|
|
3625
|
-
filters: { data: value.map((filter) => ({ filter_id: filter.id })) },
|
|
3626
|
-
}),
|
|
3627
|
-
from: (filters) => (filters === null || filters === void 0 ? void 0 : filters.map((filter) => filter === null || filter === void 0 ? void 0 : filter.filter)) || [],
|
|
3628
|
-
},
|
|
3629
|
-
},
|
|
3630
|
-
{ createdAt: { columnName: 'created_at' } },
|
|
3631
|
-
{ updatedAt: { columnName: 'updated_at' } },
|
|
2590
|
+
'filters',
|
|
2591
|
+
{ createdAt: { columnName: 'created_at' } },
|
|
2592
|
+
{ updatedAt: { columnName: 'updated_at' } },
|
|
3632
2593
|
{
|
|
3633
2594
|
products: {
|
|
3634
2595
|
columnName: 'products',
|
|
@@ -3648,21 +2609,9 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3648
2609
|
}),
|
|
3649
2610
|
},
|
|
3650
2611
|
},
|
|
3651
|
-
{ isCollection: { columnName: 'is_collection' } },
|
|
3652
|
-
{ isWishlist: { columnName: 'is_wishlist' } },
|
|
3653
|
-
'reference',
|
|
3654
|
-
{ parentId: { columnName: 'parent_id' } },
|
|
3655
|
-
{
|
|
3656
|
-
parent: {
|
|
3657
|
-
columnName: 'parent',
|
|
3658
|
-
foreignKeyColumn: { id: 'parentId' },
|
|
3659
|
-
fields: ['id', 'name', 'reference', 'slug'],
|
|
3660
|
-
},
|
|
3661
|
-
},
|
|
3662
2612
|
],
|
|
3663
2613
|
});
|
|
3664
2614
|
this.productRepository = productRepository;
|
|
3665
|
-
this.categoryFilterRepository = categoryFilterRepository;
|
|
3666
2615
|
}
|
|
3667
2616
|
create(params) {
|
|
3668
2617
|
const _super = Object.create(null, {
|
|
@@ -3670,7 +2619,7 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3670
2619
|
});
|
|
3671
2620
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3672
2621
|
const { metadata } = params, data = __rest(params, ["metadata"]);
|
|
3673
|
-
return _super.create.call(this, Object.assign(Object.assign({}, data), {
|
|
2622
|
+
return _super.create.call(this, Object.assign(Object.assign({}, data), { metadata: metadata || { description: null, title: null } }));
|
|
3674
2623
|
});
|
|
3675
2624
|
}
|
|
3676
2625
|
get(identifiers) {
|
|
@@ -3680,7 +2629,7 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3680
2629
|
var _a;
|
|
3681
2630
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3682
2631
|
return Number.isNaN(+identifiers.id)
|
|
3683
|
-
? (_a = (yield this.find({ filters: { firestoreId: identifiers.id }
|
|
2632
|
+
? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
|
|
3684
2633
|
: _super.get.call(this, identifiers);
|
|
3685
2634
|
});
|
|
3686
2635
|
}
|
|
@@ -3689,13 +2638,12 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3689
2638
|
update: { get: () => super.update }
|
|
3690
2639
|
});
|
|
3691
2640
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3692
|
-
const { products, id: checkId, metadata
|
|
2641
|
+
const { products, id: checkId, metadata } = params, data = __rest(params, ["products", "id", "metadata"]);
|
|
3693
2642
|
const plainData = this.paramsToPlain({ id: checkId });
|
|
3694
2643
|
const id = yield this.getId(plainData.id);
|
|
3695
|
-
const category = yield _super.update.call(this, Object.assign(
|
|
2644
|
+
const category = yield _super.update.call(this, Object.assign({ id }, data));
|
|
3696
2645
|
category.products = products && (yield this.updateProducts(+id, { products }));
|
|
3697
2646
|
category.metadata = metadata && (yield this.updateMetadata(+id, { metadata }));
|
|
3698
|
-
category.filters = filters && (yield this.updateFilters(+id, { filters }));
|
|
3699
2647
|
return category;
|
|
3700
2648
|
});
|
|
3701
2649
|
}
|
|
@@ -3703,42 +2651,15 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3703
2651
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3704
2652
|
if (!slug)
|
|
3705
2653
|
return null;
|
|
3706
|
-
const { data } = yield this.find({
|
|
3707
|
-
|
|
3708
|
-
slug,
|
|
3709
|
-
shops: { operator: Where.IN, value: [shop] },
|
|
3710
|
-
published: { operator: Where.EQUALS, value: true },
|
|
3711
|
-
isWishlist: { operator: Where.EQUALS, value: false },
|
|
3712
|
-
},
|
|
3713
|
-
options: {
|
|
3714
|
-
enableCount: false,
|
|
3715
|
-
},
|
|
3716
|
-
});
|
|
3717
|
-
if (!data.length)
|
|
3718
|
-
throw new NotFoundError(`Category with slug ${slug} not found`);
|
|
3719
|
-
if (data.length > 1)
|
|
2654
|
+
const { data, count } = yield this.find({ filters: { slug, shop, published: true } });
|
|
2655
|
+
if (count > 1)
|
|
3720
2656
|
throw new DuplicatedResultsError('Query returned duplicated values');
|
|
2657
|
+
if (!count)
|
|
2658
|
+
throw new NotFoundError(`Category with slug ${slug} not found`);
|
|
3721
2659
|
return data.shift();
|
|
3722
2660
|
});
|
|
3723
2661
|
}
|
|
3724
|
-
|
|
3725
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3726
|
-
if (!shop)
|
|
3727
|
-
return;
|
|
3728
|
-
const { data } = yield this.find({
|
|
3729
|
-
filters: {
|
|
3730
|
-
shops: { operator: Where.IN, value: [shop] },
|
|
3731
|
-
published: { operator: Where.EQUALS, value: true },
|
|
3732
|
-
isWishlist: { operator: Where.EQUALS, value: false },
|
|
3733
|
-
},
|
|
3734
|
-
options: {
|
|
3735
|
-
enableCount: false,
|
|
3736
|
-
},
|
|
3737
|
-
});
|
|
3738
|
-
return data;
|
|
3739
|
-
});
|
|
3740
|
-
}
|
|
3741
|
-
getCategoriesForHome(categoryIds, limit = 4, gender) {
|
|
2662
|
+
getCategoriesForHome(categoryIds, limit = 4) {
|
|
3742
2663
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3743
2664
|
if (!(categoryIds === null || categoryIds === void 0 ? void 0 : categoryIds.length))
|
|
3744
2665
|
return [];
|
|
@@ -3758,7 +2679,7 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3758
2679
|
const homeSections = yield Promise.all(categories.map((category) => __awaiter(this, void 0, void 0, function* () {
|
|
3759
2680
|
return ({
|
|
3760
2681
|
category,
|
|
3761
|
-
products: yield this.mountCategory(category, { limit, hasStock: true
|
|
2682
|
+
products: yield this.mountCategory(category, { limit, hasStock: true }),
|
|
3762
2683
|
});
|
|
3763
2684
|
})));
|
|
3764
2685
|
return homeSections;
|
|
@@ -3770,7 +2691,7 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3770
2691
|
if (!((_a = category === null || category === void 0 ? void 0 : category.products) === null || _a === void 0 ? void 0 : _a.length))
|
|
3771
2692
|
return [];
|
|
3772
2693
|
const products = [];
|
|
3773
|
-
const { data: productsData } = yield this.productRepository.find(Object.assign(
|
|
2694
|
+
const { data: productsData } = yield this.productRepository.find(Object.assign({ filters: Object.assign({ id: { operator: Where.IN, value: category.products }, published: true }, ((options === null || options === void 0 ? void 0 : options.hasStock) ? { stock: { quantity: { operator: Where.GT, value: 0 } } } : {})), fields: [
|
|
3774
2695
|
'id',
|
|
3775
2696
|
'name',
|
|
3776
2697
|
'slug',
|
|
@@ -3794,9 +2715,7 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3794
2715
|
'tags',
|
|
3795
2716
|
'type',
|
|
3796
2717
|
'shoppingCount',
|
|
3797
|
-
|
|
3798
|
-
'createdAt',
|
|
3799
|
-
] }, ((options === null || options === void 0 ? void 0 : options.limit) ? { limits: { limit: options === null || options === void 0 ? void 0 : options.limit } } : {})), { options: { enableCount: false } }));
|
|
2718
|
+
] }, ((options === null || options === void 0 ? void 0 : options.limit) ? { limits: { limit: options === null || options === void 0 ? void 0 : options.limit } } : {})));
|
|
3800
2719
|
products.push(...productsData);
|
|
3801
2720
|
return products;
|
|
3802
2721
|
});
|
|
@@ -3806,7 +2725,7 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3806
2725
|
return __awaiter(this, void 0, void 0, function* () {
|
|
3807
2726
|
if (!Number.isNaN(+id))
|
|
3808
2727
|
return id;
|
|
3809
|
-
const { data } = yield this.find({ filters: { firestoreId: id }
|
|
2728
|
+
const { data } = yield this.find({ filters: { firestoreId: id } });
|
|
3810
2729
|
if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
|
|
3811
2730
|
return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
|
|
3812
2731
|
throw new NotFoundError(`Category with id ${id} not found`);
|
|
@@ -3864,220 +2783,15 @@ class CategoryHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGr
|
|
|
3864
2783
|
return plainData.metadata;
|
|
3865
2784
|
});
|
|
3866
2785
|
}
|
|
3867
|
-
updateFilters(categoryId, { filters }) {
|
|
3868
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3869
|
-
if ('action' in filters && filters.action === 'remove' && filters.value.length) {
|
|
3870
|
-
for (let i = 0; i < filters.value.length; i++) {
|
|
3871
|
-
yield this.categoryFilterRepository.deleteByCategoryAndFilter(categoryId, filters.value[i].id);
|
|
3872
|
-
}
|
|
3873
|
-
return [];
|
|
3874
|
-
}
|
|
3875
|
-
if ('action' in filters && filters.action === 'merge' && filters.value.length) {
|
|
3876
|
-
let filtersList = [];
|
|
3877
|
-
const currentFilters = yield this.categoryFilterRepository
|
|
3878
|
-
.find({
|
|
3879
|
-
filters: {
|
|
3880
|
-
categoryId,
|
|
3881
|
-
},
|
|
3882
|
-
})
|
|
3883
|
-
.then((res) => res.data);
|
|
3884
|
-
const currentFiltersId = currentFilters.map((f) => f.id);
|
|
3885
|
-
const filtersUpdatedId = filters.value.map((f) => f.id);
|
|
3886
|
-
const filterToBeDeleted = currentFiltersId.filter((c) => !filtersUpdatedId.includes(c));
|
|
3887
|
-
const filterToBeInserted = filtersUpdatedId.filter((c) => !currentFiltersId.includes(c));
|
|
3888
|
-
for (const filter of filterToBeDeleted) {
|
|
3889
|
-
const index = currentFilters.findIndex((f) => f.id == filter);
|
|
3890
|
-
if (index != -1) {
|
|
3891
|
-
currentFilters.splice(index, 1);
|
|
3892
|
-
}
|
|
3893
|
-
yield this.categoryFilterRepository.deleteByCategoryAndFilter(categoryId, filter);
|
|
3894
|
-
}
|
|
3895
|
-
for (const filter of filterToBeInserted) {
|
|
3896
|
-
const newCategoryFilter = yield this.categoryFilterRepository.create({
|
|
3897
|
-
filterId: filter,
|
|
3898
|
-
categoryId,
|
|
3899
|
-
});
|
|
3900
|
-
filtersList.push(filter);
|
|
3901
|
-
}
|
|
3902
|
-
return filters.value;
|
|
3903
|
-
}
|
|
3904
|
-
if (Array.isArray(filters) && filters.length) {
|
|
3905
|
-
yield this.categoryFilterRepository.deleteByCategory(categoryId);
|
|
3906
|
-
let filtersList = [];
|
|
3907
|
-
for (let i = 0; i < filters.length; i++) {
|
|
3908
|
-
const newCategoryFilter = yield this.categoryFilterRepository.create({
|
|
3909
|
-
filterId: filters[i].id,
|
|
3910
|
-
categoryId,
|
|
3911
|
-
});
|
|
3912
|
-
filtersList.push(newCategoryFilter);
|
|
3913
|
-
}
|
|
3914
|
-
return filters;
|
|
3915
|
-
}
|
|
3916
|
-
});
|
|
3917
|
-
}
|
|
3918
|
-
getChildren(parentId) {
|
|
3919
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3920
|
-
const { category_tree } = yield this.query('category_tree', ['id', 'name', 'parent_id'], {
|
|
3921
|
-
args: {
|
|
3922
|
-
type: 'category_tree_args',
|
|
3923
|
-
value: { parentid: parentId },
|
|
3924
|
-
required: true,
|
|
3925
|
-
},
|
|
3926
|
-
});
|
|
3927
|
-
return category_tree.map((category) => Category.toInstance(category));
|
|
3928
|
-
});
|
|
3929
|
-
}
|
|
3930
|
-
isChild(id, parentId) {
|
|
3931
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3932
|
-
const categoryTree = yield this.getChildren(parentId);
|
|
3933
|
-
return categoryTree.some((c) => c.id == id.toString());
|
|
3934
|
-
});
|
|
3935
|
-
}
|
|
3936
|
-
}
|
|
3937
|
-
|
|
3938
|
-
class FilterHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
3939
|
-
constructor({ endpoint, authOptions, interceptors, }, filterOptionRepository, categoryFilterRepository) {
|
|
3940
|
-
super({
|
|
3941
|
-
tableName: 'filter',
|
|
3942
|
-
model: Filter,
|
|
3943
|
-
endpoint,
|
|
3944
|
-
authOptions,
|
|
3945
|
-
interceptors,
|
|
3946
|
-
fields: [
|
|
3947
|
-
'id',
|
|
3948
|
-
'description',
|
|
3949
|
-
'slug',
|
|
3950
|
-
'enabled',
|
|
3951
|
-
{ createdAt: { columnName: 'created_at' } },
|
|
3952
|
-
{ updatedAt: { columnName: 'updated_at' } },
|
|
3953
|
-
{
|
|
3954
|
-
options: {
|
|
3955
|
-
columnName: 'options',
|
|
3956
|
-
foreignKeyColumn: { filterId: 'id' },
|
|
3957
|
-
fields: [
|
|
3958
|
-
'id',
|
|
3959
|
-
{ filterId: { columnName: 'filter_id' } },
|
|
3960
|
-
'description',
|
|
3961
|
-
{ createdAt: { columnName: 'created_at' } },
|
|
3962
|
-
{ updatedAt: { columnName: 'updated_at' } },
|
|
3963
|
-
],
|
|
3964
|
-
},
|
|
3965
|
-
},
|
|
3966
|
-
],
|
|
3967
|
-
});
|
|
3968
|
-
this.filterOptionRepository = filterOptionRepository;
|
|
3969
|
-
this.categoryFilterRepository = categoryFilterRepository;
|
|
3970
|
-
}
|
|
3971
|
-
update(params) {
|
|
3972
|
-
const _super = Object.create(null, {
|
|
3973
|
-
update: { get: () => super.update }
|
|
3974
|
-
});
|
|
3975
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3976
|
-
const { options } = params, data = __rest(params, ["options"]);
|
|
3977
|
-
const filter = yield _super.update.call(this, data);
|
|
3978
|
-
filter.options = yield this.updateOptions(+data.id, { options });
|
|
3979
|
-
return filter;
|
|
3980
|
-
});
|
|
3981
|
-
}
|
|
3982
|
-
updateOptions(filterId, { options }) {
|
|
3983
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
3984
|
-
if (!options)
|
|
3985
|
-
return [];
|
|
3986
|
-
if ('action' in options && options.action === 'remove' && options.value.length) {
|
|
3987
|
-
for (let i = 0; i < options.value.length; i++) {
|
|
3988
|
-
yield this.filterOptionRepository.delete({ id: options.value[i].id });
|
|
3989
|
-
}
|
|
3990
|
-
return [];
|
|
3991
|
-
}
|
|
3992
|
-
if ('action' in options && options.action === 'merge' && options.value.length) {
|
|
3993
|
-
let filterOptions = [];
|
|
3994
|
-
for (let i = 0; i < options.value.length; i++) {
|
|
3995
|
-
try {
|
|
3996
|
-
const hasFilter = yield this.filterOptionRepository.get({ id: options.value[i].id });
|
|
3997
|
-
if (hasFilter)
|
|
3998
|
-
filterOptions.push(hasFilter);
|
|
3999
|
-
}
|
|
4000
|
-
catch (error) {
|
|
4001
|
-
const newOption = yield this.filterOptionRepository.create(Object.assign(Object.assign({}, options.value[i]), { filterId }));
|
|
4002
|
-
filterOptions.push(newOption);
|
|
4003
|
-
}
|
|
4004
|
-
}
|
|
4005
|
-
return filterOptions;
|
|
4006
|
-
}
|
|
4007
|
-
if (Array.isArray(options) && options.length) {
|
|
4008
|
-
let filterOptions = [];
|
|
4009
|
-
for (let i = 0; i < options.length; i++) {
|
|
4010
|
-
try {
|
|
4011
|
-
const hasFilter = yield this.filterOptionRepository.get({ id: options[i].id });
|
|
4012
|
-
if (hasFilter)
|
|
4013
|
-
filterOptions.push(hasFilter);
|
|
4014
|
-
}
|
|
4015
|
-
catch (error) {
|
|
4016
|
-
const newOption = yield this.filterOptionRepository.create(Object.assign(Object.assign({}, options[i]), { filterId }));
|
|
4017
|
-
filterOptions.push(newOption);
|
|
4018
|
-
}
|
|
4019
|
-
}
|
|
4020
|
-
}
|
|
4021
|
-
return [];
|
|
4022
|
-
});
|
|
4023
|
-
}
|
|
4024
|
-
delete(params) {
|
|
4025
|
-
const _super = Object.create(null, {
|
|
4026
|
-
delete: { get: () => super.delete }
|
|
4027
|
-
});
|
|
4028
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4029
|
-
const { data: categoryFilters } = yield this.categoryFilterRepository.find({
|
|
4030
|
-
filters: {
|
|
4031
|
-
filterId: params.id,
|
|
4032
|
-
},
|
|
4033
|
-
});
|
|
4034
|
-
if (categoryFilters.length)
|
|
4035
|
-
throw new Error('Erro: o filtro está associado a uma ou mais categoria(s)');
|
|
4036
|
-
yield this.deleteOptions(+params.id);
|
|
4037
|
-
yield _super.delete.call(this, { id: +params.id });
|
|
4038
|
-
return;
|
|
4039
|
-
});
|
|
4040
|
-
}
|
|
4041
|
-
deleteOptions(filterId) {
|
|
4042
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4043
|
-
yield this.mutation('delete_filter_option', ['affected_rows'], {
|
|
4044
|
-
where: {
|
|
4045
|
-
type: 'filter_option_bool_exp',
|
|
4046
|
-
required: true,
|
|
4047
|
-
value: { filter_id: { _eq: filterId } },
|
|
4048
|
-
},
|
|
4049
|
-
});
|
|
4050
|
-
});
|
|
4051
|
-
}
|
|
4052
|
-
}
|
|
4053
|
-
|
|
4054
|
-
class FilterOptionHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
4055
|
-
constructor({ endpoint, authOptions, interceptors, }) {
|
|
4056
|
-
super({
|
|
4057
|
-
tableName: 'filter_option',
|
|
4058
|
-
model: FilterOption,
|
|
4059
|
-
endpoint,
|
|
4060
|
-
authOptions,
|
|
4061
|
-
interceptors,
|
|
4062
|
-
fields: [
|
|
4063
|
-
'id',
|
|
4064
|
-
'description',
|
|
4065
|
-
{ filterId: { columnName: 'filter_id' } },
|
|
4066
|
-
{ createdAt: { columnName: 'created_at' } },
|
|
4067
|
-
{ updatedAt: { columnName: 'updated_at' } },
|
|
4068
|
-
],
|
|
4069
|
-
});
|
|
4070
|
-
}
|
|
4071
2786
|
}
|
|
4072
2787
|
|
|
4073
2788
|
class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
4074
|
-
constructor(
|
|
2789
|
+
constructor(endpoint, authOptions) {
|
|
4075
2790
|
super({
|
|
4076
2791
|
tableName: 'product',
|
|
4077
2792
|
model: ProductHasuraGraphQL,
|
|
4078
2793
|
endpoint,
|
|
4079
2794
|
authOptions,
|
|
4080
|
-
interceptors,
|
|
4081
2795
|
fields: [],
|
|
4082
2796
|
});
|
|
4083
2797
|
this.bindReviewToModel = (plain) => (Object.assign(Object.assign({}, is(omit(plain, ['product_id', 'created_at', 'updated_at', 'person_id', 'order_id']))), { createdAt: typeof plain.created_at === 'string' ? new Date(plain.created_at) : plain.created_at, updatedAt: typeof plain.updated_at === 'string' ? new Date(plain.updated_at) : plain.updated_at, personId: plain.person_id, orderId: plain.order_id }));
|
|
@@ -4100,29 +2814,26 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4100
2814
|
whoMustUse: data.who_must_use,
|
|
4101
2815
|
howToUse: data.how_to_use,
|
|
4102
2816
|
brand: data.brand_description,
|
|
4103
|
-
ingredients: data.ingredients,
|
|
4104
2817
|
}),
|
|
4105
|
-
bindFindFilter: (
|
|
4106
|
-
|
|
2818
|
+
bindFindFilter: (sentence) => {
|
|
2819
|
+
const filters = Object.values(sentence).shift();
|
|
2820
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ((filters === null || filters === void 0 ? void 0 : filters.description) && { description: filters.description })), (filters.differentials && { differentials: filters.differentials })), (filters.whoMustUse && {
|
|
4107
2821
|
who_must_use: filters.whoMustUse,
|
|
4108
2822
|
})), (filters.howToUse && {
|
|
4109
2823
|
how_to_use: filters.howToUse,
|
|
4110
2824
|
})), (filters.brand && {
|
|
4111
2825
|
brand_description: filters.brand,
|
|
4112
|
-
})), (filters.ingredients && {
|
|
4113
|
-
ingredients: filters.ingredients,
|
|
4114
2826
|
}));
|
|
4115
2827
|
},
|
|
4116
|
-
bindPersistData: (descriptionData) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(
|
|
2828
|
+
bindPersistData: (descriptionData) => (Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, ((descriptionData === null || descriptionData === void 0 ? void 0 : descriptionData.description) && { description: descriptionData.description })), (descriptionData.differentials && { differentials: descriptionData.differentials })), (descriptionData.whoMustUse && {
|
|
4117
2829
|
who_must_use: descriptionData.whoMustUse,
|
|
4118
|
-
})), (descriptionData.howToUse && { how_to_use: descriptionData.howToUse })), (descriptionData.brand && { brand_description: descriptionData.brand }))
|
|
2830
|
+
})), (descriptionData.howToUse && { how_to_use: descriptionData.howToUse })), (descriptionData.brand && { brand_description: descriptionData.brand }))),
|
|
4119
2831
|
},
|
|
4120
2832
|
},
|
|
4121
2833
|
{ differentials: { columnName: 'differentials' } },
|
|
4122
2834
|
{ whoMustUse: { columnName: 'who_must_use' } },
|
|
4123
2835
|
{ howToUse: { columnName: 'how_to_use' } },
|
|
4124
2836
|
{ brandDescription: { columnName: 'brand_description' } },
|
|
4125
|
-
{ ingredients: { columnName: 'ingredients' } },
|
|
4126
2837
|
{ hasVariants: { columnName: 'has_variants' } },
|
|
4127
2838
|
{
|
|
4128
2839
|
images: {
|
|
@@ -4146,7 +2857,8 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4146
2857
|
subscriberDiscountPercentage: data.subscriber_discount_percentage,
|
|
4147
2858
|
subscriberPrice: data.subscriber_price,
|
|
4148
2859
|
}),
|
|
4149
|
-
bindFindFilter: (
|
|
2860
|
+
bindFindFilter: (sentence) => {
|
|
2861
|
+
const filters = Object.values(sentence).shift();
|
|
4150
2862
|
return Object.assign(Object.assign(Object.assign(Object.assign({}, (((filters === null || filters === void 0 ? void 0 : filters.price) || (filters === null || filters === void 0 ? void 0 : filters.price) === 0) && { price: filters.price })), ((filters.fullPrice || filters.fullPrice === 0) && { full_price: filters.fullPrice })), ((filters.subscriberDiscountPercentage || filters.subscriberDiscountPercentage === 0) && {
|
|
4151
2863
|
subscriber_discount_percentage: filters.subscriberDiscountPercentage,
|
|
4152
2864
|
})), ((filters.subscriberPrice || filters.subscriberPrice === 0) && {
|
|
@@ -4170,29 +2882,27 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4170
2882
|
to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
|
|
4171
2883
|
},
|
|
4172
2884
|
},
|
|
4173
|
-
{ hasStock: { columnName: 'has_stock' } },
|
|
4174
2885
|
'slug',
|
|
4175
2886
|
'type',
|
|
4176
2887
|
'video',
|
|
4177
2888
|
'weight',
|
|
4178
2889
|
'gender',
|
|
4179
|
-
{ intGender: { columnName: 'int_gender' } },
|
|
4180
2890
|
{ tags: { columnName: 'tags', type: HasuraGraphQLColumnType.Jsonb } },
|
|
4181
|
-
{ filters: { columnName: 'filters', type: HasuraGraphQLColumnType.Jsonb } },
|
|
4182
2891
|
{ isKit: { columnName: 'is_kit' } },
|
|
4183
2892
|
{ createdAt: { columnName: 'created_at' } },
|
|
4184
2893
|
{ updatedAt: { columnName: 'updated_at' } },
|
|
4185
|
-
{ rate: { columnName: 'rating' } },
|
|
4186
|
-
{ reviewsTotal: { columnName: 'reviews_total' } },
|
|
4187
|
-
{ shoppingCount: { columnName: 'shopping_count' } },
|
|
4188
|
-
{ categoryId: { columnName: 'category_id' } },
|
|
4189
2894
|
{
|
|
4190
|
-
|
|
4191
|
-
columnName: '
|
|
4192
|
-
|
|
4193
|
-
|
|
2895
|
+
rate: {
|
|
2896
|
+
columnName: 'reviews_aggregate',
|
|
2897
|
+
filters: {
|
|
2898
|
+
filters: { status: true },
|
|
2899
|
+
filterType: 'product_review_bool_exp',
|
|
2900
|
+
},
|
|
2901
|
+
fields: [{ aggregate: [{ avg: ['rate'] }] }],
|
|
2902
|
+
from: (value) => value.aggregate.avg.rate,
|
|
4194
2903
|
},
|
|
4195
2904
|
},
|
|
2905
|
+
{ shoppingCount: { columnName: 'shopping_count' } },
|
|
4196
2906
|
];
|
|
4197
2907
|
this.fields = [
|
|
4198
2908
|
...commonFields,
|
|
@@ -4279,7 +2989,7 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4279
2989
|
var _a;
|
|
4280
2990
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4281
2991
|
const product = Number.isNaN(+identifiers.id)
|
|
4282
|
-
? (_a = (yield this.find({ filters: { firestoreId: identifiers.id }
|
|
2992
|
+
? (_a = (yield this.find({ filters: { firestoreId: identifiers.id } })).data) === null || _a === void 0 ? void 0 : _a[0]
|
|
4283
2993
|
: yield _super.get.call(this, identifiers);
|
|
4284
2994
|
if (product.productId)
|
|
4285
2995
|
throw new NotFoundError('Product not found, it is a variant');
|
|
@@ -4291,29 +3001,13 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4291
3001
|
const _super = Object.create(null, {
|
|
4292
3002
|
find: { get: () => super.find }
|
|
4293
3003
|
});
|
|
4294
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
4295
3004
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4296
|
-
const
|
|
3005
|
+
const _a = params || {}, { filters, fields } = _a, options = __rest(_a, ["filters", "fields"]);
|
|
4297
3006
|
const bindFields = fields ||
|
|
4298
3007
|
this.fields
|
|
4299
3008
|
.map((field) => (typeof field === 'string' ? field : Object.keys(field).shift()))
|
|
4300
3009
|
.filter((field) => field !== 'reviews');
|
|
4301
|
-
|
|
4302
|
-
(_c = options.options) === null || _c === void 0 ? void 0 : _c.minimal.push('price.price', 'price.fullPrice', 'price.subscriberPrice');
|
|
4303
|
-
if ((_e = (_d = options.options) === null || _d === void 0 ? void 0 : _d.maximum) === null || _e === void 0 ? void 0 : _e.includes('price'))
|
|
4304
|
-
(_f = options.options) === null || _f === void 0 ? void 0 : _f.maximum.push('price.price', 'price.fullPrice', 'price.subscriberPrice');
|
|
4305
|
-
(_h = (_g = options.options) === null || _g === void 0 ? void 0 : _g.minimal) === null || _h === void 0 ? void 0 : _h.splice((_j = options.options) === null || _j === void 0 ? void 0 : _j.minimal.indexOf('price'), 1);
|
|
4306
|
-
(_l = (_k = options.options) === null || _k === void 0 ? void 0 : _k.maximum) === null || _l === void 0 ? void 0 : _l.splice((_m = options.options) === null || _m === void 0 ? void 0 : _m.maximum.indexOf('price'), 1);
|
|
4307
|
-
return _super.find.call(this, Object.assign(Object.assign({}, options), { filters: Object.assign(Object.assign({}, filters), { productId: { operator: Where.ISNULL } }), fields: [
|
|
4308
|
-
...bindFields,
|
|
4309
|
-
...(bindFields.includes('price')
|
|
4310
|
-
? [
|
|
4311
|
-
'subscriberPrice',
|
|
4312
|
-
'subscriberDiscountPercentage',
|
|
4313
|
-
'fullPrice',
|
|
4314
|
-
]
|
|
4315
|
-
: []),
|
|
4316
|
-
] }));
|
|
3010
|
+
return _super.find.call(this, Object.assign(Object.assign({}, options), { filters: Object.assign(Object.assign({}, filters), { productId: { operator: Where.ISNULL } }), fields: bindFields }));
|
|
4317
3011
|
});
|
|
4318
3012
|
}
|
|
4319
3013
|
getBySlug(slug) {
|
|
@@ -4323,13 +3017,9 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4323
3017
|
filters: {
|
|
4324
3018
|
slug,
|
|
4325
3019
|
},
|
|
4326
|
-
fields: this.fields.map((field) => typeof field === 'string' ? field : Object.keys(field).shift()),
|
|
4327
|
-
options: {
|
|
4328
|
-
enableCount: false,
|
|
4329
|
-
},
|
|
4330
3020
|
});
|
|
4331
3021
|
const product = (_a = result === null || result === void 0 ? void 0 : result.data) === null || _a === void 0 ? void 0 : _a.shift();
|
|
4332
|
-
|
|
3022
|
+
product.reviews = yield this.findReviewsByProduct(+product.id);
|
|
4333
3023
|
return product;
|
|
4334
3024
|
});
|
|
4335
3025
|
}
|
|
@@ -4369,11 +3059,6 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4369
3059
|
], []);
|
|
4370
3060
|
});
|
|
4371
3061
|
}
|
|
4372
|
-
findCatalog(params, mainGender) {
|
|
4373
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4374
|
-
return this.find(Object.assign(Object.assign({}, params), { filters: Object.assign(Object.assign({}, params.filters), { published: true }), orderBy: Object.assign(Object.assign({ hasStock: 'desc' }, (!mainGender ? {} : { intGender: mainGender === 'female' ? 'desc' : 'asc' })), omit(params.orderBy, ['hasStock', 'intGender'])) }));
|
|
4375
|
-
});
|
|
4376
|
-
}
|
|
4377
3062
|
updateCategories(productId, { categories }) {
|
|
4378
3063
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4379
3064
|
if ('action' in categories && categories.action === 'remove') {
|
|
@@ -4497,7 +3182,7 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4497
3182
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4498
3183
|
if (!Number.isNaN(+id))
|
|
4499
3184
|
return id;
|
|
4500
|
-
const { data } = yield this.find({ filters: { firestoreId: id }
|
|
3185
|
+
const { data } = yield this.find({ filters: { firestoreId: id } });
|
|
4501
3186
|
if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
|
|
4502
3187
|
return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
|
|
4503
3188
|
throw new NotFoundError(`Product with id ${id} not found`);
|
|
@@ -4553,31 +3238,15 @@ class ProductHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4553
3238
|
return data && data[0] && this.bindReviewToModel(data[0]);
|
|
4554
3239
|
});
|
|
4555
3240
|
}
|
|
4556
|
-
cleanShoppingCountFromIds(ids) {
|
|
4557
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4558
|
-
return yield this.mutation('update_product', ['affected_rows'], {
|
|
4559
|
-
where: {
|
|
4560
|
-
value: { id: { _nin: ids } },
|
|
4561
|
-
type: 'product_bool_exp',
|
|
4562
|
-
required: true,
|
|
4563
|
-
},
|
|
4564
|
-
_set: {
|
|
4565
|
-
value: { shopping_count: 0 },
|
|
4566
|
-
type: 'product_set_input',
|
|
4567
|
-
},
|
|
4568
|
-
});
|
|
4569
|
-
});
|
|
4570
|
-
}
|
|
4571
3241
|
}
|
|
4572
3242
|
|
|
4573
3243
|
class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
4574
|
-
constructor(
|
|
3244
|
+
constructor(endpoint, authOptions) {
|
|
4575
3245
|
super({
|
|
4576
3246
|
tableName: 'product',
|
|
4577
3247
|
model: VariantHasuraGraphQL,
|
|
4578
3248
|
endpoint,
|
|
4579
3249
|
authOptions,
|
|
4580
|
-
interceptors,
|
|
4581
3250
|
fields: [
|
|
4582
3251
|
{ id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
|
|
4583
3252
|
{ firestoreId: { columnName: 'firestore_id' } },
|
|
@@ -4607,9 +3276,9 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4607
3276
|
subscriber_price: filters.subscriberPrice,
|
|
4608
3277
|
}));
|
|
4609
3278
|
},
|
|
4610
|
-
bindPersistData: (priceData) => (Object.assign(Object.assign(Object.assign(Object.assign({}, ((
|
|
3279
|
+
bindPersistData: (priceData) => (Object.assign(Object.assign(Object.assign(Object.assign({}, ((priceData === null || priceData === void 0 ? void 0 : priceData.price) >= 0 && { price: priceData.price })), (priceData.fullPrice >= 0 && { full_price: priceData.fullPrice })), (priceData.subscriberDiscountPercentage >= 0 && {
|
|
4611
3280
|
subscriber_discount_percentage: priceData.subscriberDiscountPercentage,
|
|
4612
|
-
})), (
|
|
3281
|
+
})), (priceData.subscriberPrice >= 0 && { subscriber_price: priceData.subscriberPrice }))),
|
|
4613
3282
|
},
|
|
4614
3283
|
},
|
|
4615
3284
|
{ fullPrice: { columnName: 'full_price' } },
|
|
@@ -4623,7 +3292,6 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4623
3292
|
to: (value) => (isNil(value === null || value === void 0 ? void 0 : value.quantity) ? value : value === null || value === void 0 ? void 0 : value.quantity),
|
|
4624
3293
|
},
|
|
4625
3294
|
},
|
|
4626
|
-
{ hasStock: { columnName: 'has_stock' } },
|
|
4627
3295
|
'weight',
|
|
4628
3296
|
{ name: { to: () => '', from: () => undefined } },
|
|
4629
3297
|
{ hasVariants: { columnName: 'has_variants', to: () => false, from: () => undefined } },
|
|
@@ -4679,7 +3347,7 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4679
3347
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4680
3348
|
if (!Number.isNaN(+id))
|
|
4681
3349
|
return id;
|
|
4682
|
-
const { data } = yield this.find({ filters: { firestoreId: id }
|
|
3350
|
+
const { data } = yield this.find({ filters: { firestoreId: id } });
|
|
4683
3351
|
if ((_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.id)
|
|
4684
3352
|
return (_b = data === null || data === void 0 ? void 0 : data[0]) === null || _b === void 0 ? void 0 : _b.id;
|
|
4685
3353
|
throw new NotFoundError(`Product with id ${id} not found`);
|
|
@@ -4687,256 +3355,9 @@ class VariantHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGra
|
|
|
4687
3355
|
}
|
|
4688
3356
|
}
|
|
4689
3357
|
|
|
4690
|
-
class WishlistHasuraGraphQLRepository extends withCrudHasuraGraphQL(withHasuraGraphQL(Base)) {
|
|
4691
|
-
constructor({ endpoint, authOptions, interceptors, }, categoryFilterRepository) {
|
|
4692
|
-
super({
|
|
4693
|
-
tableName: 'category',
|
|
4694
|
-
model: Wishlist,
|
|
4695
|
-
endpoint,
|
|
4696
|
-
authOptions,
|
|
4697
|
-
interceptors,
|
|
4698
|
-
fields: [
|
|
4699
|
-
{ id: { columnName: 'id', to: (value) => +value, from: (value) => value.toString() } },
|
|
4700
|
-
{ firestoreId: { columnName: 'firestore_id' } },
|
|
4701
|
-
'name',
|
|
4702
|
-
'description',
|
|
4703
|
-
'image',
|
|
4704
|
-
'published',
|
|
4705
|
-
'shop',
|
|
4706
|
-
{ shops: { columnName: 'shops', type: HasuraGraphQLColumnType.Jsonb } },
|
|
4707
|
-
'slug',
|
|
4708
|
-
{ brandCategory: { columnName: 'brand_category' } },
|
|
4709
|
-
{ brandCategoryBanner: { columnName: 'brand_banner' } },
|
|
4710
|
-
{ brandCategoryBannerMobile: { columnName: 'brand_banner_mobile' } },
|
|
4711
|
-
{ brandLogo: { columnName: 'brand_logo' } },
|
|
4712
|
-
{ brandCondition: { columnName: 'brand_condition' } },
|
|
4713
|
-
{
|
|
4714
|
-
conditions: {
|
|
4715
|
-
columnName: 'tag_condition',
|
|
4716
|
-
type: HasuraGraphQLColumnType.Jsonb,
|
|
4717
|
-
from: (tags, row) => ({ brand: row.brand_condition, tags: Array.isArray(tags) ? tags : [] }),
|
|
4718
|
-
bindPersistData: (value) => {
|
|
4719
|
-
return {
|
|
4720
|
-
brand_condition: value.brand,
|
|
4721
|
-
tag_condition: (value === null || value === void 0 ? void 0 : value.tags) || [],
|
|
4722
|
-
};
|
|
4723
|
-
},
|
|
4724
|
-
bindFindFilter: (sentence) => {
|
|
4725
|
-
return Object.assign(Object.assign({}, (sentence.brand ? { brand_condition: sentence.brand } : {})), (sentence.tags ? { tag_condition: sentence.tags } : {}));
|
|
4726
|
-
},
|
|
4727
|
-
},
|
|
4728
|
-
},
|
|
4729
|
-
{
|
|
4730
|
-
filters: {
|
|
4731
|
-
columnName: 'filters',
|
|
4732
|
-
foreignKeyColumn: { filter_id: 'id' },
|
|
4733
|
-
fields: [{ filter: ['id', 'description', 'slug', 'enabled'] }],
|
|
4734
|
-
bindPersistData: (value) => ({
|
|
4735
|
-
filters: { data: value.map((filter) => ({ filter_id: filter.id })) },
|
|
4736
|
-
}),
|
|
4737
|
-
from: (filters) => (filters === null || filters === void 0 ? void 0 : filters.map((filter) => filter === null || filter === void 0 ? void 0 : filter.filter)) || [],
|
|
4738
|
-
},
|
|
4739
|
-
},
|
|
4740
|
-
{ createdAt: { columnName: 'created_at' } },
|
|
4741
|
-
{ updatedAt: { columnName: 'updated_at' } },
|
|
4742
|
-
{
|
|
4743
|
-
products: {
|
|
4744
|
-
columnName: 'products',
|
|
4745
|
-
fields: ['product_id'],
|
|
4746
|
-
from: (value) => value.map((product) => product.product_id.toString()),
|
|
4747
|
-
to: (productIds) => productIds.map((productId) => ({
|
|
4748
|
-
product_id: +productId,
|
|
4749
|
-
})),
|
|
4750
|
-
},
|
|
4751
|
-
},
|
|
4752
|
-
{
|
|
4753
|
-
metadata: {
|
|
4754
|
-
columnName: 'metadata',
|
|
4755
|
-
fields: ['title', 'description'],
|
|
4756
|
-
bindPersistData: (value) => ({
|
|
4757
|
-
metadata: { data: value },
|
|
4758
|
-
}),
|
|
4759
|
-
},
|
|
4760
|
-
},
|
|
4761
|
-
{ isCollection: { columnName: 'is_collection' } },
|
|
4762
|
-
{ isWishlist: { columnName: 'is_wishlist' } },
|
|
4763
|
-
'reference',
|
|
4764
|
-
{ parentId: { columnName: 'parent_id' } },
|
|
4765
|
-
{
|
|
4766
|
-
parent: {
|
|
4767
|
-
columnName: 'parent',
|
|
4768
|
-
foreignKeyColumn: { id: 'parentId' },
|
|
4769
|
-
fields: ['id', 'name', 'reference', 'slug'],
|
|
4770
|
-
},
|
|
4771
|
-
},
|
|
4772
|
-
{ personId: { columnName: 'person_id' } },
|
|
4773
|
-
],
|
|
4774
|
-
});
|
|
4775
|
-
this.categoryFilterRepository = categoryFilterRepository;
|
|
4776
|
-
}
|
|
4777
|
-
create(params) {
|
|
4778
|
-
const _super = Object.create(null, {
|
|
4779
|
-
create: { get: () => super.create }
|
|
4780
|
-
});
|
|
4781
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4782
|
-
const { metadata } = params, data = __rest(params, ["metadata"]);
|
|
4783
|
-
return _super.create.call(this, Object.assign(Object.assign({}, data), { isWishlist: true, isCollection: true, brandCategory: false, metadata: metadata || { description: data.description, title: data.name } }));
|
|
4784
|
-
});
|
|
4785
|
-
}
|
|
4786
|
-
get(identifiers) {
|
|
4787
|
-
const _super = Object.create(null, {
|
|
4788
|
-
get: { get: () => super.get }
|
|
4789
|
-
});
|
|
4790
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4791
|
-
const data = yield _super.get.call(this, identifiers);
|
|
4792
|
-
if (!data.isWishlist)
|
|
4793
|
-
throw new NotFoundError(`Category with id ${identifiers.id} is not a wishlist`);
|
|
4794
|
-
return data;
|
|
4795
|
-
});
|
|
4796
|
-
}
|
|
4797
|
-
update(params) {
|
|
4798
|
-
const _super = Object.create(null, {
|
|
4799
|
-
update: { get: () => super.update }
|
|
4800
|
-
});
|
|
4801
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4802
|
-
const { products, id: checkId, metadata, filters } = params, data = __rest(params, ["products", "id", "metadata", "filters"]);
|
|
4803
|
-
const plainData = this.paramsToPlain({ id: checkId });
|
|
4804
|
-
const id = plainData.id;
|
|
4805
|
-
const category = yield _super.update.call(this, Object.assign(Object.assign({ id }, data), { isWishlist: true, isCollection: true, brandCategory: false }));
|
|
4806
|
-
category.products = products && (yield this.updateProducts(+id, { products }));
|
|
4807
|
-
category.metadata = metadata && (yield this.updateMetadata(+id, { metadata }));
|
|
4808
|
-
return category;
|
|
4809
|
-
});
|
|
4810
|
-
}
|
|
4811
|
-
getWishlistBySlug(slug) {
|
|
4812
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4813
|
-
if (!slug)
|
|
4814
|
-
return;
|
|
4815
|
-
const { data } = yield this.find({
|
|
4816
|
-
filters: {
|
|
4817
|
-
slug,
|
|
4818
|
-
isWishlist: { operator: Where.EQUALS, value: true },
|
|
4819
|
-
},
|
|
4820
|
-
options: {
|
|
4821
|
-
enableCount: false,
|
|
4822
|
-
},
|
|
4823
|
-
});
|
|
4824
|
-
if (!data.length)
|
|
4825
|
-
throw new NotFoundError(`Wishlist with slug ${slug} not found`);
|
|
4826
|
-
if (data.length > 1)
|
|
4827
|
-
throw new DuplicatedResultsError('Query returned duplicated values');
|
|
4828
|
-
return data.shift();
|
|
4829
|
-
});
|
|
4830
|
-
}
|
|
4831
|
-
getWishlistByPerson(personId) {
|
|
4832
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4833
|
-
if (!personId)
|
|
4834
|
-
return;
|
|
4835
|
-
const { data } = yield this.find({
|
|
4836
|
-
filters: {
|
|
4837
|
-
personId: { operator: Where.EQUALS, value: personId },
|
|
4838
|
-
isWishlist: { operator: Where.EQUALS, value: true },
|
|
4839
|
-
},
|
|
4840
|
-
options: {
|
|
4841
|
-
enableCount: false,
|
|
4842
|
-
},
|
|
4843
|
-
});
|
|
4844
|
-
if (!data.length)
|
|
4845
|
-
throw new NotFoundError(`Wishlists from person ${personId} not found`);
|
|
4846
|
-
return data;
|
|
4847
|
-
});
|
|
4848
|
-
}
|
|
4849
|
-
updateProducts(categoryId, { products }) {
|
|
4850
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4851
|
-
if ('action' in products && products.action === 'remove') {
|
|
4852
|
-
yield this.mutation('delete_category_product', ['affected_rows'], {
|
|
4853
|
-
where: {
|
|
4854
|
-
type: 'category_product_bool_exp',
|
|
4855
|
-
required: true,
|
|
4856
|
-
value: { category_id: { _eq: categoryId } },
|
|
4857
|
-
},
|
|
4858
|
-
});
|
|
4859
|
-
yield this.categoryFilterRepository.deleteByCategory(categoryId);
|
|
4860
|
-
return [];
|
|
4861
|
-
}
|
|
4862
|
-
const plainData = this.paramsToPlain({ products });
|
|
4863
|
-
if (!plainData.products || plainData.products.length <= 0)
|
|
4864
|
-
return [];
|
|
4865
|
-
yield this.mutation('delete_category_product', ['affected_rows'], {
|
|
4866
|
-
where: {
|
|
4867
|
-
type: 'category_product_bool_exp',
|
|
4868
|
-
required: true,
|
|
4869
|
-
value: { category_id: { _eq: categoryId } },
|
|
4870
|
-
},
|
|
4871
|
-
});
|
|
4872
|
-
yield this.categoryFilterRepository.deleteByCategory(categoryId);
|
|
4873
|
-
yield this.mutation('insert_category_product', ['affected_rows'], {
|
|
4874
|
-
objects: {
|
|
4875
|
-
type: '[category_product_insert_input!]',
|
|
4876
|
-
required: true,
|
|
4877
|
-
value: plainData.products.map((productId) => ({ category_id: categoryId, product_id: productId })),
|
|
4878
|
-
},
|
|
4879
|
-
});
|
|
4880
|
-
return plainData.products;
|
|
4881
|
-
});
|
|
4882
|
-
}
|
|
4883
|
-
updateMetadata(categoryId, { metadata }) {
|
|
4884
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4885
|
-
const plainData = this.paramsToPlain({ metadata });
|
|
4886
|
-
if (!plainData.metadata)
|
|
4887
|
-
return;
|
|
4888
|
-
yield this.mutation('update_category_metadata_by_pk', ['category_id'], {
|
|
4889
|
-
pk_columns: {
|
|
4890
|
-
value: { category_id: categoryId },
|
|
4891
|
-
type: 'category_metadata_pk_columns_input',
|
|
4892
|
-
required: true,
|
|
4893
|
-
},
|
|
4894
|
-
_set: {
|
|
4895
|
-
value: omit(metadata, ['category_id']),
|
|
4896
|
-
type: 'category_metadata_set_input',
|
|
4897
|
-
required: true,
|
|
4898
|
-
},
|
|
4899
|
-
});
|
|
4900
|
-
return plainData.metadata;
|
|
4901
|
-
});
|
|
4902
|
-
}
|
|
4903
|
-
getCategoryBySlug(slug, _shop) {
|
|
4904
|
-
return this.getWishlistBySlug(slug);
|
|
4905
|
-
}
|
|
4906
|
-
getCategoryByShop(shop) {
|
|
4907
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
4908
|
-
if (!shop)
|
|
4909
|
-
return;
|
|
4910
|
-
const { data } = yield this.find({
|
|
4911
|
-
filters: {
|
|
4912
|
-
shops: { operator: Where.IN, value: [shop] },
|
|
4913
|
-
published: { operator: Where.EQUALS, value: true },
|
|
4914
|
-
isWishlist: { operator: Where.EQUALS, value: true },
|
|
4915
|
-
},
|
|
4916
|
-
options: {
|
|
4917
|
-
enableCount: false,
|
|
4918
|
-
},
|
|
4919
|
-
});
|
|
4920
|
-
return data;
|
|
4921
|
-
});
|
|
4922
|
-
}
|
|
4923
|
-
getCategoriesForHome(categoryIds, limit, gender) {
|
|
4924
|
-
return;
|
|
4925
|
-
}
|
|
4926
|
-
mountCategory(category, options) {
|
|
4927
|
-
return;
|
|
4928
|
-
}
|
|
4929
|
-
getChildren(parentId) {
|
|
4930
|
-
return;
|
|
4931
|
-
}
|
|
4932
|
-
isChild(id, parentId) {
|
|
4933
|
-
return;
|
|
4934
|
-
}
|
|
4935
|
-
}
|
|
4936
|
-
|
|
4937
3358
|
/**
|
|
4938
3359
|
* Generated bundle index. Do not edit.
|
|
4939
3360
|
*/
|
|
4940
3361
|
|
|
4941
|
-
export { AccessoryImportances, Address, Area, Authentication, AuthenticationFirebaseAuthService, AxiosAdapter, Base, BaseModel, BeardProblems, BeardSizes, BeautyProductImportances, BeautyProfile, BeautyQuestionsHelper, BillingStatus, BodyProblems, BodyShapes, BodyTattoos, Buy2Win, Buy2WinFirestoreRepository,
|
|
3362
|
+
export { AccessoryImportances, Address, Area, Authentication, AuthenticationFirebaseAuthService, AxiosAdapter, Base, BaseModel, BeardProblems, BeardSizes, BeautyProductImportances, BeautyProfile, BeautyQuestionsHelper, BillingStatus, BodyProblems, BodyShapes, BodyTattoos, Buy2Win, Buy2WinFirestoreRepository, Category, CategoryFirestoreRepository, CategoryHasuraGraphQL, CategoryHasuraGraphQLRepository, Checkout, CheckoutFirestoreRepository, CheckoutSubscription, CheckoutSubscriptionFirestoreRepository, CheckoutTypes, Coupon, CouponFirestoreRepository, CouponSubtypes, CouponTypes, DuplicatedResultsError, Edition, EditionStatus, Exclusivities, FaceSkinOilinesses, FaceSkinProblems, FaceSkinTones, FamilyIncomes, FilterType, FragranceImportances, GenderDestination, HairColors, HairProblems, HairStrands, HairTypes, Home, HomeFirestoreRepository, InvalidArgumentError, KitProduct, KitProductHasuraGraphQL, Lead, LeadFirestoreRepository, LegacyOrderFirestoreRepository, LineItem, NotFoundError, OfficePosition, Order, OrderFirestoreRepository, OrderStatus, Payment, PaymentFirestoreRepository, PaymentType, Product, ProductFirestoreRepository, ProductHasuraGraphQL, ProductHasuraGraphQLRepository, ProductSpents, ProductVariantFirestoreRepository, ProductsIndex, QuestionsFilters, RecoveryPassword, Register, RegisterFirebaseAuthService, RequiredArgumentError, ShippingMethod, ShopMenu, ShopMenuFirestoreRepository, Shops, SignInMethods, SignOut, Status, Subscription, SubscriptionEditionFirestoreRepository, SubscriptionFirestoreRepository, SubscriptionPayment, SubscriptionPaymentFirestoreRepository, SubscriptionPlan, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, UnauthorizedError, UpdateOptionActions, User, UserAddress, UserAddressFirestoreRepository, UserAlreadyRegisteredError, UserBeautyProfileFirestoreRepository, UserFirestoreRepository, UserPaymentMethod, UserPaymentMethodFirestoreRepository, UserType, Variant, VariantHasuraGraphQL, VariantHasuraGraphQLRepository, WeakPasswordError, Where, get, is, isUUID, parseDateTime, withCreateFirestore, withCreateHasuraGraphQL, withCrudFirestore, withCrudHasuraGraphQL, withDeleteFirestore, withDeleteHasuraGraphQL, withFindFirestore, withFindHasuraGraphQL, withFirestore, withGetFirestore, withGetHasuraGraphQL, withHasuraGraphQL, withHelpers, withSubCollection, withUpdateFirestore, withUpdateHasuraGraphQL };
|
|
4942
3363
|
//# sourceMappingURL=infrab4a-connect.mjs.map
|