@infrab4a/connect-angular 4.0.0-beta.30 → 4.0.0-beta.31
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/esm2020/angular-connect.module.mjs +1 -1
- package/esm2020/services/catalog/catalog.service.mjs +44 -10
- package/esm2020/services/catalog/category.service.mjs +29 -3
- package/fesm2015/infrab4a-connect-angular.mjs +71 -17
- package/fesm2015/infrab4a-connect-angular.mjs.map +1 -1
- package/fesm2020/infrab4a-connect-angular.mjs +70 -11
- package/fesm2020/infrab4a-connect-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/services/catalog/catalog.service.d.ts +37 -11
- package/services/catalog/category.service.d.ts +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrab4a-connect-angular.mjs","sources":["../../../projects/connect-angular/src/consts/backend-url.const.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/consts/firebase-const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/services/errors/invalid-coupon.error.ts","../../../projects/connect-angular/src/services/errors/group-invalid-coupon.error.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/catalog/catalog.service.ts","../../../projects/connect-angular/src/services/catalog/category.service.ts","../../../projects/connect-angular/src/services/catalog/enums/product-sorts.enum.ts","../../../projects/connect-angular/src/services/catalog/models/category-with-tree.model.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/shipping.service.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["export const BACKEND_URL = 'BACKEND_URL'","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","export const ES_CONFIG = 'ES_CONFIG'\n","import { InjectionToken } from '@angular/core'\n\nexport const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName')\nexport const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions')\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseOptions, initializeApp, provideFirebaseApp } from '@angular/fire/app'\nimport { Auth, getAuth, provideAuth } from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n RecoveryPassword,\n Register,\n RegisterFirebaseAuthService,\n RegisterService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get(FIREBASE_APP_NAME)\n\n return appName\n ? initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n : initializeApp(injector.get(FIREBASE_OPTIONS))\n }),\n provideAuth(() => getAuth()),\n ],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: Auth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'Register',\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\n return new Register(registerService, userRepository)\n },\n deps: ['RegisterService', 'UserRepository'],\n },\n {\n provide: 'RegisterService',\n useFactory: (angularFireAuth: Auth): RegisterService => {\n return new RegisterFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n {\n provide: 'RecoveryPassword',\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\n return new RecoveryPassword(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirebaseAuthModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { AxiosAdapter, AxiosElasticSearchConfig, ProductsIndex } from '@infrab4a/connect'\n\nimport { ES_CONFIG } from './consts/es-config.const'\n\n@NgModule({\n providers: [\n {\n provide: ProductsIndex,\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex =>\n new ProductsIndex(new AxiosAdapter(configuration)),\n deps: [ES_CONFIG],\n },\n ],\n})\nexport class AngularElasticSeachModule {\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\n return {\n ngModule: AngularElasticSeachModule,\n providers: [{ provide: ES_CONFIG, useValue: options }],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport { FirebaseOptions, provideFirebaseApp } from '@angular/fire/app'\nimport { Firestore, provideFirestore } from '@angular/fire/firestore'\nimport {\n AxiosElasticSearchConfig,\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CampaignDashboardFirestoreRepository,\n CampaignDashboardRepository,\n CampaignHashtagFirestoreRepository,\n CampaignHashtagRepository,\n CategoryFirestoreRepository,\n CategoryRepository,\n CheckoutFirestoreRepository,\n CheckoutRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n CouponFirestoreRepository,\n CouponRepository,\n EditionRepository,\n FirestoreConstructorParams,\n FirestoreIntertceptorRequestParams,\n HomeFirestoreRepository,\n HomeRepository,\n LeadFirestoreRepository,\n LeadRepository,\n LegacyOrderFirestoreRepository,\n LegacyOrderRepository,\n OrderFirestoreRepository,\n OrderRepository,\n PaymentFirestoreRepository,\n PaymentRepository,\n ProductFirestoreRepository,\n ProductRepository,\n ProductVariantFirestoreRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n ShopSettingsFirestoreRepository,\n ShopSettingsRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionProductFirestoreRepository,\n SubscriptionProductRepository,\n SubscriptionRepository,\n UserAddressFirestoreRepository,\n UserAddressRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserPaymentMethodFirestoreRepository,\n UserPaymentMethodRepository,\n UserRepository,\n VariantRepository,\n} from '@infrab4a/connect'\nimport { initializeApp } from 'firebase/app'\nimport { getFirestore } from 'firebase/firestore'\n\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\nexport type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>\n\n@NgModule({\n imports: [\n AngularElasticSeachModule,\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get(FIREBASE_APP_NAME)\n\n return appName\n ? initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n : initializeApp(injector.get(FIREBASE_OPTIONS))\n }),\n provideFirestore(() => getFirestore()),\n ],\n providers: [\n {\n provide: 'FirestoreOptions',\n useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({\n firestore,\n interceptors: {\n request: (request: FirestoreIntertceptorRequestParams<any> & { interval: NodeJS.Timeout }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (\n response: any,\n request: FirestoreIntertceptorRequestParams<any> & { interval: NodeJS.Timeout },\n ) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [Firestore, PLATFORM_ID],\n },\n {\n provide: 'BeautyProfileRepository',\n useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(config, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (options: FirestoreOptions): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: CategoryFirestoreRepository,\n useFactory: (options: FirestoreOptions): CategoryRepository => {\n return new CategoryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (options: FirestoreOptions): CheckoutRepository => {\n return new CheckoutFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CouponRepository',\n useFactory: (options: FirestoreOptions): CouponRepository => {\n return new CouponFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignHashtagRepository',\n useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {\n return new CampaignHashtagFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignDashboardRepository',\n useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {\n return new CampaignDashboardFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (options: FirestoreOptions): HomeRepository => {\n return new HomeFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LeadRepository',\n useFactory: (options: FirestoreOptions): LeadRepository => {\n return new LeadFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LegacyOrderRepository',\n useFactory: (options: FirestoreOptions): LegacyOrderRepository => {\n return new LegacyOrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (options: FirestoreOptions): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'OrderRepository',\n useFactory: (options: FirestoreOptions): OrderRepository => {\n return new OrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (options: FirestoreOptions): PaymentRepository => {\n return new PaymentFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductFirestoreRepository,\n useFactory: (options: FirestoreOptions): ProductRepository => {\n return new ProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopSettingsRepository',\n useFactory: (options: FirestoreOptions): ShopSettingsRepository => {\n return new ShopSettingsFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionProductRepository',\n useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {\n return new SubscriptionProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (options: FirestoreOptions): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserRepository',\n useFactory: (options: FirestoreOptions): UserRepository => {\n return new UserFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'UserPaymentMethodRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {\n return new UserPaymentMethodFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: ProductVariantFirestoreRepository,\n useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(options, productRepository)\n },\n deps: ['FirestoreOptions', ProductFirestoreRepository],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirestoreModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: ES_CONFIG, useValue: options.elasticSearch },\n ],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport {\n CategoryFilterHasuraGraphQLRepository,\n CategoryFilterRepository,\n CategoryHasuraGraphQLRepository,\n CategoryRepository,\n FilterHasuraGraphQLRepository,\n FilterOptionHasuraGraphQLRepository,\n FilterOptionRepository,\n FilterRepository,\n GraphQLParams,\n HasuraGraphQLAuthOptions,\n ProductHasuraGraphQLRepository,\n ProductRepository,\n VariantHasuraGraphQLRepository,\n VariantRepository,\n} from '@infrab4a/connect'\n\nimport { HASURA_OPTIONS } from './consts'\n\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\n\n@NgModule({\n providers: [\n {\n provide: 'HasuraConfig',\n useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({\n endpoint: options.endpoint,\n authOptions: options.credentials,\n interceptors: {\n request: (request: GraphQLParams<any> & { interval: NodeJS.Timeout }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (response: any, request: GraphQLParams<any> & { interval: NodeJS.Timeout }) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [HASURA_OPTIONS, PLATFORM_ID],\n },\n {\n provide: 'CategoryRepository',\n useExisting: CategoryHasuraGraphQLRepository,\n },\n {\n provide: CategoryHasuraGraphQLRepository,\n useFactory: (\n options: any,\n productRepository: ProductHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): CategoryRepository => {\n return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: 'ProductRepository',\n useExisting: ProductHasuraGraphQLRepository,\n },\n {\n provide: ProductHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductRepository => {\n return new ProductHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'VariantRepository',\n useExisting: VariantHasuraGraphQLRepository,\n },\n {\n provide: VariantHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): VariantRepository => {\n return new VariantHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n\n {\n provide: 'CategoryFilterRepository',\n useExisting: CategoryFilterHasuraGraphQLRepository,\n },\n {\n provide: CategoryFilterHasuraGraphQLRepository,\n useFactory: (options: any): CategoryFilterRepository => {\n return new CategoryFilterHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n\n {\n provide: 'FilterOptionRepository',\n useExisting: FilterOptionHasuraGraphQLRepository,\n },\n {\n provide: FilterOptionHasuraGraphQLRepository,\n useFactory: (options: any): FilterOptionRepository => {\n return new FilterOptionHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterRepository',\n useExisting: FilterHasuraGraphQLRepository,\n },\n {\n provide: FilterHasuraGraphQLRepository,\n useFactory: (\n options: any,\n filterOptionRepository: FilterOptionHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): FilterRepository => {\n return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n ],\n})\nexport class AngularHasuraGraphQLModule {\n static initializeApp(options: {\n endpoint: string\n credentials: HasuraGraphQLAuthOptions\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\n return {\n ngModule: AngularHasuraGraphQLModule,\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Auth, User as FirebaseUser, authState, getIdToken } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { Observable, combineLatest, from, of } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: Auth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\n const observables: [Observable<FirebaseUser>, Observable<User>] = [this.getFireUser(), this.getUser()]\n\n return combineLatest(observables).pipe(\n map(([fireUser, user]) => ({\n user,\n isAnonymous: fireUser?.isAnonymous,\n })),\n )\n }\n\n getUser(): Observable<User> {\n return this.getFireUser().pipe(\n map((user) => user?.uid),\n mergeMap((id) => (id ? from(this.userRepository.get({ id })).pipe(catchError(() => of(null))) : of(null))),\n )\n }\n\n getTokenId(): Observable<string> {\n return from(getIdToken(this.angularFireAuth.currentUser))\n }\n\n getFireUser(): Observable<FirebaseUser> {\n return authState(this.angularFireAuth).pipe(catchError(() => of(null)))\n }\n}\n","import { CustomError } from 'ts-custom-error'\n\nexport class InvalidCouponError extends CustomError {\n constructor(message: string) {\n super(message)\n }\n}\n","import { CustomError } from 'ts-custom-error'\n\nimport { InvalidCouponError } from './invalid-coupon.error'\n\nexport class GroupInvalidCouponError extends CustomError {\n constructor(readonly errors: InvalidCouponError[]) {\n super('Many coupon errors throw')\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n Checkout,\n CheckoutSubscription,\n CheckoutTypes,\n Coupon,\n CouponRepository,\n CouponTypes,\n Exclusivities,\n LineItem,\n OrderRepository,\n RepositoryFindResult,\n Shops,\n User,\n Where,\n} from '@infrab4a/connect'\nimport { Observable, from, of, throwError } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { InvalidCouponError } from './errors'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CouponService {\n constructor(\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n ) {}\n\n checkCoupon(\n nickname: string,\n userEmail: string,\n checkoutType: CheckoutTypes,\n plan?: string,\n checkout?: Partial<Checkout>,\n isSubscription?: boolean,\n ): Observable<Coupon> {\n return from(\n this.couponRepository.find({\n filters: {\n nickname: { operator: Where.EQUALS, value: nickname },\n active: { operator: Where.EQUALS, value: true },\n },\n }),\n ).pipe(\n concatMap((coupons) => this.checkCouponRules(coupons, checkoutType, plan, checkout, isSubscription)),\n concatMap((coupon: Coupon) => this.checkCouponUseAndLimit(coupon, userEmail, checkout)),\n map((coupon: Coupon) => this.isValidCoupon(coupon, userEmail)),\n map((coupon: Coupon) => coupon),\n )\n }\n\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\n\n private checkCouponRules(\n coupons: RepositoryFindResult<Coupon>,\n checkoutType: CheckoutTypes,\n plan?: string,\n checkout?: Partial<Checkout>,\n isSubscription?: boolean,\n ) {\n // Caso não ache nenhum cupom, retorna erro\n if (coupons.count < 1) {\n return throwError('Cupom inválido.')\n }\n\n // Get Primeiro Cupom (o find do repository retorna um array)\n const coupon: Coupon = coupons.data.shift()\n // Verifica se o cupom é aplicavel na loja\n const isInShop = coupon.shopAvailability === Shops.ALL || coupon.shopAvailability === this.defaultShop\n\n // Cupon não aplicavel a loja retorna erro\n if (!isInShop) return throwError('Cupom inválido para loja.')\n\n // Verifica se o coupon é aplicado no checkout que está sendo realizado\n const isCheckoutType = coupon.checkoutType === CheckoutTypes.ALL || coupon.checkoutType === checkoutType\n\n // Cupon não aplicavel ao checkout retorna erro\n if (!isCheckoutType) return throwError('Cupom inválido. Erro de checkout.')\n\n // Verifica se o cupom é ou pode ser aplicado para subscription\n if (checkoutType === CheckoutTypes.ALL || checkoutType === CheckoutTypes.SUBSCRIPTION) {\n // Se o cupom tiver um plano associado, verifica se é o mesmo plano do checkout da assinatura\n if (coupon.plan && coupon.plan.toUpperCase() !== plan.toUpperCase())\n return throwError('Cupom inválido para sua assinatura.')\n }\n\n if (isSubscription) return of(coupon)\n\n // Verifica se possui o valor minimo de compra para utilização do cupom\n const hasMinSubTotal = this.hasMinSubTotal(coupon, checkout)\n\n // Se não tem valor mínimo atingido, retorna erro\n if (!hasMinSubTotal)\n return throwError(\n `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\n coupon.minSubTotalValue,\n )} não atingido`,\n )\n\n return of(coupon)\n }\n\n private isValidCoupon(coupon: Coupon, userEmail: string): Coupon {\n // Verifica a data de inicio de validade do cupom\n if (coupon?.beginAt > new Date()) throw new InvalidCouponError('Cupom ainda não liberado.')\n\n // Verifica a data de validade do cupom\n if (coupon?.expiresIn < new Date()) throw new InvalidCouponError('Cupom expirado.')\n\n return coupon\n }\n\n private async checkCouponUseAndLimit(coupon: Coupon, userEmail: string, checkout: Partial<Checkout>) {\n const orders = await this.orderRepository.find({\n filters: {\n coupon: { id: coupon.id },\n payment: { status: 'paid' },\n ...(coupon.influencerEmail ? { user: { email: userEmail } } : {}),\n },\n })\n\n // orders que usuario ja fez com o cupom\n const ordersUserCoupon = orders.data.filter((o) => o.user.email == userEmail)\n\n // Verifica o limite de uso de cupom por usuario\n if (coupon.useLimitPerUser && ordersUserCoupon.length)\n throw new InvalidCouponError('Limite de uso por usuário atingido.')\n\n // Verifica o limite de uso geral por usuario\n if (coupon.useLimit && orders.data.length >= coupon.useLimit)\n throw new InvalidCouponError('Limite de uso atingido.')\n\n const validUser = this.userValidationAndSubscriptionStatus(coupon, checkout?.user)\n if (!validUser) throw new InvalidCouponError('Usuário não elegível.')\n\n const hasProductCategories = await this.hasProductCategories(coupon, checkout)\n\n if (!hasProductCategories) throw 'Seu carrinho não possui produtos elegíveis para desconto.'\n\n return coupon\n }\n\n public calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number> {\n //\n let discount = 0\n\n if (coupon.type === CouponTypes.ABSOLUTE) discount = coupon.discount\n else if (coupon.type === CouponTypes.PERCENTAGE)\n discount = checkout.subscriptionPlan.recurrencePrice * (coupon.discount / 100)\n\n return of(discount)\n }\n\n public async calcDiscountShopping(coupon: Coupon, checkout: Partial<Checkout>): Promise<number> {\n let discount = 0\n\n switch (coupon.type) {\n case CouponTypes.ABSOLUTE: {\n discount = coupon.discount\n break\n }\n case CouponTypes.PERCENTAGE: {\n discount = await this.calcShoppingPercentageDiscount(coupon, checkout)\n break\n }\n }\n\n return discount\n }\n\n private async calcShoppingPercentageDiscount(coupon: Coupon, checkout: Partial<Checkout>): Promise<number> {\n let discount = 0\n const shop = checkout.shop\n let lineItensDiscount = []\n const couponCategories = await this.getCouponCategoriesId(coupon)\n\n if (coupon.productsCategories && coupon.productsCategories.length) {\n lineItensDiscount = checkout.lineItems?.filter((i) => {\n if (i.categories?.length) {\n return i.categories.some((c) => couponCategories.some((cat) => cat.id == c || cat.firestoreId == c))\n }\n return true\n })\n } else {\n lineItensDiscount = checkout.lineItems\n }\n\n const subTotal =\n lineItensDiscount.reduce(\n (acc, curr: LineItem) =>\n checkout.user?.isSubscriber && curr.price?.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n\n discount = subTotal * (coupon.discount / 100)\n\n return discount\n }\n\n private hasMinSubTotal(coupon: Coupon, checkout: Partial<Checkout>): boolean {\n if (!coupon.minSubTotalValue) return true\n\n const shop = checkout.shop\n\n let subTotal =\n checkout.lineItems?.reduce(\n (acc, curr) =>\n checkout.user?.isSubscriber && curr.price?.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n\n if (coupon.minSubTotalValue <= subTotal) return true\n return false\n }\n\n private async hasProductCategories(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.productsCategories || !coupon.productsCategories.length) {\n return true\n }\n\n const couponCategories = await this.getCouponCategoriesId(coupon)\n\n const hasCategories = checkout.lineItems?.filter((i) => {\n if (!i.categories || !i.categories?.length) return true\n return i.categories.some((c) => couponCategories.some((cat) => cat.id == c || cat.firestoreId == c))\n })\n\n return hasCategories.length ? true : false\n }\n\n private userValidationAndSubscriptionStatus(coupon: Coupon, user: User): boolean {\n if (coupon.exclusivityType === Exclusivities.ALL_USERS) return true\n if (!user) return true\n\n // Verifica se o email do usuário é coorporativo\n if (!this.emailIsFromCollaborator(user.email) && coupon.exclusivityType === Exclusivities.COLLABORATORS)\n throw new InvalidCouponError('Você não é colaborador.')\n\n // Verifica se o email do usuário é associado ao cupom de uso por usuario\n if (coupon.exclusivityType === Exclusivities.SPECIFIC_USER && coupon.userExclusiveEmail !== user.email)\n throw new InvalidCouponError('Cupom não é válido para este usuário.')\n\n switch (coupon.exclusivityType) {\n case Exclusivities.ACTIVE_SUBSCRIBER:\n return user.isSubscriber ? true : false\n\n case Exclusivities.INACTIVE_SUBSCRIBER:\n return user.isSubscriber ? false : true\n\n case Exclusivities.NON_SUBSCRIBER:\n return user.isSubscriber ? false : true\n }\n\n return true\n }\n\n private async getCouponCategoriesId(coupon: Coupon) {\n let couponCategories: { id: string; firestoreId: string }[] = []\n\n for (let index = 0; index < coupon.productsCategories.length; index++) {\n let c: Category & { firestoreId?: string } = await this.categoryRepository.get({\n id: coupon.productsCategories[index],\n })\n couponCategories.push({ id: c.id, firestoreId: c.firestoreId })\n }\n\n return couponCategories\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Checkout,\n CheckoutRepository,\n CheckoutTypes,\n Coupon,\n NotFoundError,\n OrderRepository,\n Shops,\n User,\n UserRepository,\n isNil,\n pick,\n} from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { Observable, from, of, throwError } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { CouponService } from './coupon.service'\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n private readonly couponService: CouponService,\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n const checkoutId = cookie.get('checkoutId')\n\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\n\n return from(this.createCheckout(checkoutData))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n concatMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\n }\n\n clearCheckoutFromSession(): Observable<void> {\n cookie.remove('checkoutId')\n\n return of()\n }\n\n calcDiscount(coupon: Coupon) {\n return this.getCheckout().pipe(\n concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)),\n )\n }\n\n checkCoupon(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon(\n nickname,\n checkout.user?.email,\n CheckoutTypes.ECOMMERCE,\n checkout.user.subscriptionPlan,\n checkout,\n false,\n )\n .pipe(),\n ),\n )\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n shop: checkoutData?.shop || this.defaultShop,\n })\n\n cookie.set('checkoutId', checkout.id)\n\n return checkout\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Buy2Win,\n Buy2WinFirestoreRepository,\n CategoryRepository,\n Checkout,\n isNil,\n LineItem,\n NotFoundError,\n Product,\n ProductRepository,\n RoundProductPricesHelper,\n ShopPrice,\n Shops,\n User,\n Variant,\n VariantRepository,\n Where,\n} from '@infrab4a/connect'\nimport { from, iif, Observable, of, Subject } from 'rxjs'\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\nimport { DEFAULT_SHOP } from '../consts'\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('VariantRepository') private readonly variantRepository: VariantRepository,\n @Inject('Buy2WinRepository') private readonly buy2WinRepository: Buy2WinFirestoreRepository,\n ) {}\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n return from(this.checkoutService.getCheckout()).pipe(\n concatMap(async (checkout) => await this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\n mergeMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.id === item.id)\n\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\n\n return checkout\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n /**\n * @deprecated The method should not be used\n */\n getVariantPriceDiscount(item: LineItem): Observable<number> {\n return this.authService.getUser().pipe(\n concatMap((user) =>\n iif(\n () => user.isSubscriber && !!item.price.subscriberPrice,\n of(item.price.subscriberPrice),\n of(item.price.price),\n ),\n ),\n catchError(() => of(item.price.price)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.id === item.id)\n\n if (index >= 0) checkout.lineItems.splice(index, 1)\n\n return checkout\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n updateUserCart(user: User): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n concatMap(async (checkout) =>\n this.checkoutService\n .updateCheckoutLineItems(\n Checkout.toInstance({\n ...checkout.toPlain(),\n lineItems: checkout.lineItems?.length\n ? await Promise.all(\n checkout.lineItems?.map(async (item) => (await this.buildLineItem({ checkout, item })).lineItem),\n )\n : [],\n }),\n )\n .toPromise(),\n ),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n clearCart(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n this.checkoutService.clearCheckoutFromSession()\n return checkout\n }),\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\n concatMap((checkoutLoaded) => {\n const items: LineItem[] = []\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.id).indexOf(lineItem.id)\n\n if (index > -1) {\n checkoutLoaded.lineItems[index].quantity += quantity\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\n } else\n checkoutLoaded.lineItems = items.concat(\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\n )\n\n return this.checkoutService\n .updateCheckoutLineItems(checkoutLoaded)\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\n }),\n )\n\n private generateCartObject = (items: LineItem[]): Cart =>\n items?.reduce(\n (cart, item) => ({\n ...cart,\n [item.id]: LineItem.toInstance({\n ...(cart[item.id] || item),\n quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n }),\n }),\n {} as Record<string, LineItem>,\n ) || {}\n\n private buildLineItem = async ({\n checkout,\n item,\n quantity,\n }: {\n checkout: RequiredCheckoutData\n item: LineItem\n quantity?: number\n }): Promise<{ checkout: Partial<Checkout>; lineItem: LineItem }> => {\n const product = await this.getProductData(item.id)\n\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.id === item.id)?.quantity || 0\n\n if (this.checkMaxStock(item, quantity || 0))\n throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\n\n const image = item.image || item.images?.shift()\n const { id, name, EAN, slug, stock, price, weight, sku, type } = item\n const isGift = item.isGift || null\n const pricePaid = this.getProductPrice({\n product: item,\n shop: checkout.shop || this.defaultShop,\n isSubscriber: checkout.user?.isSubscriber,\n })\n\n RoundProductPricesHelper.roundProductPrices(item)\n\n return {\n checkout,\n lineItem: LineItem.toInstance({\n id,\n name: name ?? product.name,\n EAN: EAN ?? product.EAN,\n brand: product.brand,\n slug: slug ?? product.slug,\n sku: sku ?? product.sku,\n stock,\n price: this.roundPrice(price),\n image,\n weight: weight ?? product.weight,\n quantity: (item.quantity || 0) + (quantity || 0),\n pricePaid,\n categories: product.categories ?? [],\n isGift: isGift ?? null,\n costPrice: product.costPrice ?? 0,\n type,\n }),\n }\n }\n\n private roundPrice(productPrice: ShopPrice): ShopPrice {\n const { price, fullPrice, subscriberPrice } = productPrice\n return {\n ...productPrice,\n price: Number(price.toFixed(2)),\n fullPrice: Number(fullPrice.toFixed(2)),\n ...(subscriberPrice && { subscriberPrice: Number(subscriberPrice.toFixed(2)) }),\n }\n }\n\n private async getProductData(productId: string): Promise<Partial<Product>> {\n let product: Product\n let variant: Variant\n\n try {\n product = await this.productRepository.get({ id: productId })\n } catch (error) {\n if (!(error instanceof NotFoundError)) throw error\n\n const { data: variants } = await this.variantRepository.find({ filters: { id: productId } })\n\n variant = variants.shift()\n\n if (!variant) throw error\n\n product = await this.productRepository.get({ id: variant.productId })\n }\n\n return {\n ...product.toPlain(),\n ...(variant && { ...variant.toPlain() }),\n }\n }\n\n private getProductPrice = ({\n product,\n isSubscriber,\n }: {\n product: LineItem\n shop: Shops\n isSubscriber: boolean\n }): number => {\n const info = product.price\n\n if (product.isGift) return 0\n\n return isSubscriber && info.subscriberPrice > 0\n ? Number(info.subscriberPrice.toFixed(2))\n : Number(info.price.toFixed(2))\n }\n\n private checkMaxStock = (item: LineItem, quantity: number) => {\n const maxStock = item.stock?.quantity || 0\n const currentItemAmount = item.quantity || 0\n\n return currentItemAmount + quantity > maxStock\n }\n\n getGifts() {\n return this.checkoutService.getCheckout().pipe(\n mergeMap(async (checkout) => {\n const notGiftItems: LineItem[] = checkout.lineItems ? checkout.lineItems.filter((item) => !item.isGift) : []\n\n if (!notGiftItems.length) return { ...checkout, lineItems: [] } as Checkout\n\n const cartTotal = notGiftItems.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\n\n const campaigns = await this.buy2WinRepository\n .find({\n filters: {\n active: { operator: Where.EQUALS, value: true },\n shop: { operator: Where.EQUALS, value: this.defaultShop },\n },\n })\n .then((data) => data.data)\n\n if (!campaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const elegibleCampaigns: Buy2Win[] = []\n\n for (const campaign of campaigns) {\n const today = new Date()\n\n if (!(campaign.startDate <= today) && !(campaign.endDate >= today)) continue\n\n if (campaign.activeCategory) {\n const categoriesCampaing = campaign.categories.map((c) => c.id.toString())\n const categoriesCampaingFullTree = []\n\n for (const id of categoriesCampaing) {\n const children = await this.categoryRepository.getChildren(parseInt(id))\n\n categoriesCampaingFullTree.push(id, ...children.map((c) => c.id.toString()))\n }\n\n const categoriesCampaingTree = [...new Set(categoriesCampaingFullTree)]\n const filterProductsCategories = checkout.lineItems.filter((l) => {\n if (!l.categories || !l.categories?.length) return true\n\n return l.categories.some((c) => categoriesCampaingTree.some((cat) => cat == c))\n })\n\n if (filterProductsCategories.length) {\n const cartTotalCategories = filterProductsCategories.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\n\n if (cartTotalCategories >= campaign.cartValueMin) elegibleCampaigns.push(campaign)\n }\n } else {\n if (campaign.cartValue && campaign.cartValue > 0) {\n if (campaign.cartValue <= cartTotal) elegibleCampaigns.push(campaign)\n }\n }\n }\n\n if (!elegibleCampaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const campaingnProducts: Product[][] = []\n\n for (const campaign of elegibleCampaigns) {\n let elegibleProducts = []\n\n for (const product of campaign.products) {\n const { data: productData } = await this.productRepository.find({ filters: { sku: product } })\n\n if (!productData.length) continue\n\n const gift = productData.shift()\n\n if (gift.stock.quantity < 1) continue\n\n elegibleProducts.push(gift)\n }\n\n campaingnProducts.push(elegibleProducts)\n }\n\n if (!campaingnProducts.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const gifts = this.giftToLineItems([].concat(...campaingnProducts))\n\n return { ...checkout, lineItems: notGiftItems.concat(gifts) }\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private giftToLineItems(items: Product[]): LineItem[] {\n return items.map((item) => {\n const { brand, categories, id, name, price, sku, slug, stock, weight, EAN } = item\n\n const image = item?.miniatures?.length ? item.miniatures[0] : item.images[0]\n\n return LineItem.toInstance({\n brand,\n categories,\n id: id.toString(),\n name,\n price,\n sku,\n slug,\n stock,\n weight,\n EAN,\n image,\n pricePaid: 0,\n quantity: 1,\n isGift: true,\n })\n })\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, Product, ProductRepository, RepositoryOrderBy, Where } from '@infrab4a/connect'\nimport { ProductSort } from './types/product-sort.type'\n\n@Injectable()\nexport class CatalogService {\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n ) {}\n\n async fetchProducts(\n category: Category,\n options?: { page?: number; perPage?: number; filters?: string[]; sort?: ProductSort },\n ): Promise<{ products: Product[]; pages: number; total: number }> {\n const productsIds = category.products.length\n ? category.products\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\n const limits = this.buildLimitQuery(options)\n\n return await this.productRepository\n .find({\n filters: {\n id: { operator: Where.IN, value: productsIds },\n published: true,\n },\n limits,\n })\n .then(({ data, count: total }) => ({ products: data, pages: Math.ceil(total / limits.limit), total }))\n }\n\n private buildFilterQuery = (category: Category, filters: string[]): any => {}\n\n private buildSortQuery = (sort: ProductSort): RepositoryOrderBy<Product> => {\n const query: RepositoryOrderBy<Product> = {\n stock: 'desc',\n gender: 'asc',\n }\n\n return query\n }\n\n private buildLimitQuery = (options: { page?: number; perPage?: number }): { limit?: number; offset?: number } => {\n const limit = options?.perPage || 20\n\n return {\n limit,\n offset: ((options?.page || 1) - 1) * limit,\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryFilterRepository, Filter } from '@infrab4a/connect'\n\nimport { CategoryWithTree } from './models'\n\n@Injectable()\nexport class CategoryService {\n constructor(\n @Inject('CategoryFilterRepository') private readonly categoryFilterRepository: CategoryFilterRepository,\n ) {}\n\n async fetchSubCategories(category: Category): Promise<CategoryWithTree[]> {\n return []\n }\n\n async fetchFilterOptions(category: Category, filters?: string[]): Promise<Filter[]> {\n const categoryFilters =\n category.filters && category.filters.length\n ? category.filters\n : await this.categoryFilterRepository\n .find({ filters: { categoryId: +category.id } })\n .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter))\n\n return filters?.length\n ? categoryFilters.filter(\n (categoryFilter) =>\n !filters || !filters.length || categoryFilter.options.some((option) => filters.includes(option.id)),\n )\n : categoryFilters\n }\n}\n","export enum ProductSorts {\n MOST_RELEVANT = 'most-relevant',\n BEST_SELLER = 'best-sellers',\n BIGGEST_PRICE = 'biggest-price',\n LOWEST_PRICE = 'lowest-price',\n BIGGEST_DISCOUNT = 'biggest-discount',\n BEST_RATING = 'best-rating',\n}\n","import { Type } from 'class-transformer'\n\nimport { Category } from '@infrab4a/connect'\n\nexport class CategoryWithTree extends Category {\n @Type(() => CategoryWithTree)\n children?: CategoryWithTree[]\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CheckoutSubscription,\n CheckoutSubscriptionRepository,\n CheckoutTypes,\n Coupon,\n isNil,\n pick,\n SubscriptionRepository,\n} from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, of } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\nimport { RequiredCheckoutSubscriptionData } from './types'\n\nimport { CouponService } from './coupon.service'\n\n@Injectable()\nexport class CheckoutSubscriptionService {\n constructor(\n @Inject('CheckoutSubscriptionRepository')\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\n @Inject('SubscriptionRepository') private readonly subscriptionRepository: SubscriptionRepository,\n private readonly couponService: CouponService,\n ) {}\n\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\n const checkoutId = cookie.get('checkoutSubscriptionId')\n\n if (!isNil(checkoutId)) return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }))\n\n return from(this.createCheckoutSubscription(checkoutData))\n }\n\n private async createCheckoutSubscription(\n checkoutData?: RequiredCheckoutSubscriptionData,\n ): Promise<CheckoutSubscription> {\n const checkout = await this.checkoutSubscriptionRepository.create({\n createdAt: new Date(),\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n })\n\n cookie.set('checkoutSubscriptionId', checkout.id)\n\n return checkout\n }\n\n clearCheckoutSubscriptionFromSession(): Observable<void> {\n cookie.remove('checkoutSubscriptionId')\n\n return of()\n }\n\n checkCoupon(nickname: string, userEmail: string): Observable<Coupon> {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon(nickname, userEmail, CheckoutTypes.SUBSCRIPTION, checkout.subscriptionPlan.name, checkout, true)\n .pipe(),\n ),\n )\n }\n\n calcDiscountSubscription(coupon: Coupon) {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()),\n )\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n add,\n Banner,\n Category,\n CategoryRepository,\n Home,\n HomeCategoryGroup,\n HomeData,\n HomeRepository,\n pick,\n Product,\n ProductRepository,\n RequiredArgumentError,\n Shops,\n Where,\n} from '@infrab4a/connect'\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\n\n@Injectable()\nexport class HomeShopService {\n private homeConfiguration: Home\n\n private get homeId(): HomeConfigurationId {\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\n\n return null\n }\n\n constructor(\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getHomeData(): Observable<Home> {\n return this.getHomeConfiguration().pipe(\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\n concatMap((home) =>\n home\n ? of(home)\n : forkJoin([this.getDiscoverProducts(), this.getFeaturedProducts(), this.getVerticalProducts()]).pipe(\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\n discoverProducts,\n featuredProducts,\n verticalProducts,\n })),\n concatMap((data) => this.saveHomeData(data)),\n ),\n ),\n )\n }\n\n getBanners(type: BannerType): Observable<Banner[]> {\n return this.getHomeConfiguration().pipe(\n map((home) => {\n if (type === 'brand') return home.brandsCarousel\n if (type === 'buyToWin') return [home.buyToWinBanner]\n if (type === 'block') return home.blockBanners\n if (type === 'blog') return [home.blogBanner]\n\n return []\n }),\n )\n }\n\n getMinValueForFreeShipping(): Observable<number> {\n return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping))\n }\n\n private getDiscoverProducts(): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getFeaturedProducts(): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getVerticalProducts(): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n forkJoin(\n home.verticalCarousels.filter(Boolean).map((id) =>\n from(this.categoryRepository.get({ id })).pipe(\n concatMap((category) =>\n from(\n this.productRepository.find({\n filters: { categories: { operator: Where.IN, value: [category.id] } },\n limits: { limit: 12 },\n }),\n ).pipe(map((products) => ({ category, products }))),\n ),\n map(({ category, products }) => ({ category, products: products.data })),\n map(this.buildCategoryGroupWithRequiredData),\n ),\n ),\n ),\n ),\n )\n }\n\n private getHomeConfiguration(): Observable<Home> {\n return of(this.homeConfiguration).pipe(\n concatMap((home) =>\n home\n ? of(home)\n : !this.homeId\n ? throwError(new RequiredArgumentError(['homeId']))\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\n ),\n ),\n )\n }\n\n private saveHomeData(homeData: HomeData): Observable<Home> {\n const data = {\n createdAt: new Date(),\n expiresAt: add(new Date(), { hours: 1 }),\n data: homeData,\n }\n\n return from(\n this.homeRepository.update({\n id: this.homeId,\n data,\n }),\n ).pipe(\n tap(() => (this.homeConfiguration.data = data)),\n map(() => this.homeConfiguration),\n )\n }\n\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\n category: Category.toInstance(pick(group?.category?.toPlain() || {}, ['id', 'name', 'slug', 'conditions'])),\n products:\n group?.products?.map((product) =>\n Product.toInstance(\n pick(product?.toPlain() || {}, [\n 'id',\n 'price',\n 'reviews',\n 'hasVariants',\n 'slug',\n 'sku',\n 'stock',\n 'costPrice',\n 'images',\n 'miniatures',\n 'name',\n 'weight',\n 'rate',\n 'type',\n ]),\n ),\n ) || [],\n })\n}\n","import { Injectable, Inject } from '@angular/core'\nimport { doc, Firestore, docSnapshots } from '@angular/fire/firestore'\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\nimport { Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\n@Injectable()\nexport class OrderService {\n orderSubject = new Subject<Order>()\n\n constructor(\n private readonly angularFirestore: Firestore,\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\n ) {}\n\n getOrder(id: string): Subject<Order> {\n docSnapshots(doc(this.angularFirestore, `${this.orderRepository.collectionName}/${id}`))\n .pipe(map((doc) => Order.toInstance(doc.data())))\n .subscribe((doc) => this.orderSubject.next(doc))\n\n return this.orderSubject\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Home, Shops } from '@infrab4a/connect'\nimport { Observable, combineLatest } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { BACKEND_URL } from '../consts'\nimport { HomeShopService } from './home-shop.service'\nimport { ShippingMethodResponse } from './types/shipping-methods.type'\n\n@Injectable()\nexport class ShippingService {\n constructor(\n private http: HttpClient,\n @Inject(BACKEND_URL) private apiUrl: string,\n private homeService: HomeShopService,\n ) {}\n\n public getShippingMethods(\n shop: string,\n zip: string,\n weightGrams: number,\n totalPrice: number,\n personId: string,\n subscriptionPlan?: string,\n ): Observable<Array<ShippingMethodResponse & { ShippingCompanyName?: string }>> {\n return combineLatest([\n this.homeService.getHomeData(),\n this.http.get(\n `${this.apiUrl}open/checkshippingcompany?personId=${personId}&postalCode=${zip}&weightGrams=${weightGrams}`,\n ),\n ]).pipe(\n map(([datas, shippingMethodsResponse]: [Home & Partial<{ sameDayNotAvaliable: any }>, any]) => {\n let shippingMethods = shippingMethodsResponse.result as (ShippingMethodResponse & {\n ShippingCompanyName?: string\n })[]\n\n if (!shippingMethods.length) return []\n\n shippingMethods = shippingMethods.map((shippingMethod) => {\n if (shippingMethod.ShippingCompanyName == 'Same Day EG') shippingMethod.ShippingCompanyName = 'Same Day'\n\n return shippingMethod\n })\n\n const datasSameDayNotAvaliable = datas.sameDayNotAvaliable\n\n if (this.isHolidays(datasSameDayNotAvaliable)) {\n shippingMethods = shippingMethods.filter((method) => method.serviceName !== 'Same Day')\n }\n\n if (totalPrice >= 200) {\n shippingMethods = shippingMethods.map((s) => {\n if (s.serviceName !== 'Same Day') return { ...s, totalPrice: 0 }\n else return s\n })\n }\n\n if (shop == Shops.GLAMSHOP) return shippingMethods\n\n if (this.isFreeShippingBySubscription(shop, subscriptionPlan)) {\n shippingMethods = shippingMethods.map((s) => {\n if (s.serviceName == 'Same Day') return { ...s, totalPrice: s.totalPrice / 2 }\n else return { ...s, totalPrice: 0 }\n })\n }\n\n if (this.isHalfShippingBySubscription(shop, subscriptionPlan)) {\n shippingMethods = shippingMethods.map((s) => {\n return { ...s, totalPrice: s.totalPrice / 2 }\n })\n }\n\n return shippingMethods\n }),\n )\n }\n\n private isFreeShippingBySubscription(shop: string, subscriptionPlan: string): boolean {\n if (!subscriptionPlan) return false\n\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'SELECT') return true\n\n return false\n }\n\n private isHalfShippingBySubscription(shop: string, subscriptionPlan: string) {\n if (!subscriptionPlan) return false\n\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'PRIME') {\n return true\n }\n\n return false\n }\n\n private isHolidays(datas: any): boolean {\n const today = new Date()\n\n for (const key in datas) {\n let start = new Date(`${today.getFullYear()}-${datas[key].beginDate}`)\n let end = new Date(`${today.getFullYear()}-${datas[key].endDate}`)\n\n if (start > end) end = new Date(`${today.getFullYear() + 1}-${datas[key].endDate}`)\n\n if (today >= start && today <= end) return true\n }\n\n return false\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseOptions } from '@angular/fire/app'\nimport { AxiosElasticSearchConfig, isNil, Shops } from '@infrab4a/connect'\n\nimport { AngularFirebaseAuthModule } from './angular-firebase-auth.module'\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\nimport { BACKEND_URL, DEFAULT_SHOP, ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS, HASURA_OPTIONS } from './consts'\nimport {\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n ShippingService,\n} from './services'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [AngularFirebaseAuthModule, AngularFirestoreModule, AngularHasuraGraphQLModule],\n providers: [\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n ShippingService,\n ],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n hasura: HasuraGraphQLOptions\n backendUrl: string\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularConnectModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\n ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","initializeApp","i1.AuthService","i2.CheckoutService","i1.CouponService","i2.HomeShopService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"infrab4a-connect-angular.mjs","sources":["../../../projects/connect-angular/src/consts/backend-url.const.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/consts/firebase-const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/services/errors/invalid-coupon.error.ts","../../../projects/connect-angular/src/services/errors/group-invalid-coupon.error.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/catalog/catalog.service.ts","../../../projects/connect-angular/src/services/catalog/category.service.ts","../../../projects/connect-angular/src/services/catalog/enums/product-sorts.enum.ts","../../../projects/connect-angular/src/services/catalog/models/category-with-tree.model.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/shipping.service.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["export const BACKEND_URL = 'BACKEND_URL'","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","export const ES_CONFIG = 'ES_CONFIG'\n","import { InjectionToken } from '@angular/core'\n\nexport const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName')\nexport const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions')\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseOptions, initializeApp, provideFirebaseApp } from '@angular/fire/app'\nimport { Auth, getAuth, provideAuth } from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n RecoveryPassword,\n Register,\n RegisterFirebaseAuthService,\n RegisterService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get(FIREBASE_APP_NAME)\n\n return appName\n ? initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n : initializeApp(injector.get(FIREBASE_OPTIONS))\n }),\n provideAuth(() => getAuth()),\n ],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: Auth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'Register',\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\n return new Register(registerService, userRepository)\n },\n deps: ['RegisterService', 'UserRepository'],\n },\n {\n provide: 'RegisterService',\n useFactory: (angularFireAuth: Auth): RegisterService => {\n return new RegisterFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n {\n provide: 'RecoveryPassword',\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\n return new RecoveryPassword(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirebaseAuthModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { AxiosAdapter, AxiosElasticSearchConfig, ProductsIndex } from '@infrab4a/connect'\n\nimport { ES_CONFIG } from './consts/es-config.const'\n\n@NgModule({\n providers: [\n {\n provide: ProductsIndex,\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex =>\n new ProductsIndex(new AxiosAdapter(configuration)),\n deps: [ES_CONFIG],\n },\n ],\n})\nexport class AngularElasticSeachModule {\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\n return {\n ngModule: AngularElasticSeachModule,\n providers: [{ provide: ES_CONFIG, useValue: options }],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport { FirebaseOptions, provideFirebaseApp } from '@angular/fire/app'\nimport { Firestore, provideFirestore } from '@angular/fire/firestore'\nimport {\n AxiosElasticSearchConfig,\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CampaignDashboardFirestoreRepository,\n CampaignDashboardRepository,\n CampaignHashtagFirestoreRepository,\n CampaignHashtagRepository,\n CategoryFirestoreRepository,\n CategoryRepository,\n CheckoutFirestoreRepository,\n CheckoutRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n CouponFirestoreRepository,\n CouponRepository,\n EditionRepository,\n FirestoreConstructorParams,\n FirestoreIntertceptorRequestParams,\n HomeFirestoreRepository,\n HomeRepository,\n LeadFirestoreRepository,\n LeadRepository,\n LegacyOrderFirestoreRepository,\n LegacyOrderRepository,\n OrderFirestoreRepository,\n OrderRepository,\n PaymentFirestoreRepository,\n PaymentRepository,\n ProductFirestoreRepository,\n ProductRepository,\n ProductVariantFirestoreRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n ShopSettingsFirestoreRepository,\n ShopSettingsRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionProductFirestoreRepository,\n SubscriptionProductRepository,\n SubscriptionRepository,\n UserAddressFirestoreRepository,\n UserAddressRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserPaymentMethodFirestoreRepository,\n UserPaymentMethodRepository,\n UserRepository,\n VariantRepository,\n} from '@infrab4a/connect'\nimport { initializeApp } from 'firebase/app'\nimport { getFirestore } from 'firebase/firestore'\n\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\nexport type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>\n\n@NgModule({\n imports: [\n AngularElasticSeachModule,\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get(FIREBASE_APP_NAME)\n\n return appName\n ? initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n : initializeApp(injector.get(FIREBASE_OPTIONS))\n }),\n provideFirestore(() => getFirestore()),\n ],\n providers: [\n {\n provide: 'FirestoreOptions',\n useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({\n firestore,\n interceptors: {\n request: (request: FirestoreIntertceptorRequestParams<any> & { interval: NodeJS.Timeout }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (\n response: any,\n request: FirestoreIntertceptorRequestParams<any> & { interval: NodeJS.Timeout },\n ) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [Firestore, PLATFORM_ID],\n },\n {\n provide: 'BeautyProfileRepository',\n useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(config, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (options: FirestoreOptions): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: CategoryFirestoreRepository,\n useFactory: (options: FirestoreOptions): CategoryRepository => {\n return new CategoryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (options: FirestoreOptions): CheckoutRepository => {\n return new CheckoutFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CouponRepository',\n useFactory: (options: FirestoreOptions): CouponRepository => {\n return new CouponFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignHashtagRepository',\n useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {\n return new CampaignHashtagFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignDashboardRepository',\n useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {\n return new CampaignDashboardFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (options: FirestoreOptions): HomeRepository => {\n return new HomeFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LeadRepository',\n useFactory: (options: FirestoreOptions): LeadRepository => {\n return new LeadFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LegacyOrderRepository',\n useFactory: (options: FirestoreOptions): LegacyOrderRepository => {\n return new LegacyOrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (options: FirestoreOptions): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'OrderRepository',\n useFactory: (options: FirestoreOptions): OrderRepository => {\n return new OrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (options: FirestoreOptions): PaymentRepository => {\n return new PaymentFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductFirestoreRepository,\n useFactory: (options: FirestoreOptions): ProductRepository => {\n return new ProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopSettingsRepository',\n useFactory: (options: FirestoreOptions): ShopSettingsRepository => {\n return new ShopSettingsFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionProductRepository',\n useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {\n return new SubscriptionProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (options: FirestoreOptions): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserRepository',\n useFactory: (options: FirestoreOptions): UserRepository => {\n return new UserFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'UserPaymentMethodRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {\n return new UserPaymentMethodFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: ProductVariantFirestoreRepository,\n useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(options, productRepository)\n },\n deps: ['FirestoreOptions', ProductFirestoreRepository],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirestoreModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: ES_CONFIG, useValue: options.elasticSearch },\n ],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport {\n CategoryFilterHasuraGraphQLRepository,\n CategoryFilterRepository,\n CategoryHasuraGraphQLRepository,\n CategoryRepository,\n FilterHasuraGraphQLRepository,\n FilterOptionHasuraGraphQLRepository,\n FilterOptionRepository,\n FilterRepository,\n GraphQLParams,\n HasuraGraphQLAuthOptions,\n ProductHasuraGraphQLRepository,\n ProductRepository,\n VariantHasuraGraphQLRepository,\n VariantRepository,\n} from '@infrab4a/connect'\n\nimport { HASURA_OPTIONS } from './consts'\n\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\n\n@NgModule({\n providers: [\n {\n provide: 'HasuraConfig',\n useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({\n endpoint: options.endpoint,\n authOptions: options.credentials,\n interceptors: {\n request: (request: GraphQLParams<any> & { interval: NodeJS.Timeout }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (response: any, request: GraphQLParams<any> & { interval: NodeJS.Timeout }) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [HASURA_OPTIONS, PLATFORM_ID],\n },\n {\n provide: 'CategoryRepository',\n useExisting: CategoryHasuraGraphQLRepository,\n },\n {\n provide: CategoryHasuraGraphQLRepository,\n useFactory: (\n options: any,\n productRepository: ProductHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): CategoryRepository => {\n return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: 'ProductRepository',\n useExisting: ProductHasuraGraphQLRepository,\n },\n {\n provide: ProductHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductRepository => {\n return new ProductHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'VariantRepository',\n useExisting: VariantHasuraGraphQLRepository,\n },\n {\n provide: VariantHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): VariantRepository => {\n return new VariantHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n\n {\n provide: 'CategoryFilterRepository',\n useExisting: CategoryFilterHasuraGraphQLRepository,\n },\n {\n provide: CategoryFilterHasuraGraphQLRepository,\n useFactory: (options: any): CategoryFilterRepository => {\n return new CategoryFilterHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n\n {\n provide: 'FilterOptionRepository',\n useExisting: FilterOptionHasuraGraphQLRepository,\n },\n {\n provide: FilterOptionHasuraGraphQLRepository,\n useFactory: (options: any): FilterOptionRepository => {\n return new FilterOptionHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterRepository',\n useExisting: FilterHasuraGraphQLRepository,\n },\n {\n provide: FilterHasuraGraphQLRepository,\n useFactory: (\n options: any,\n filterOptionRepository: FilterOptionHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): FilterRepository => {\n return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n ],\n})\nexport class AngularHasuraGraphQLModule {\n static initializeApp(options: {\n endpoint: string\n credentials: HasuraGraphQLAuthOptions\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\n return {\n ngModule: AngularHasuraGraphQLModule,\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Auth, User as FirebaseUser, authState, getIdToken } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { Observable, combineLatest, from, of } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: Auth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\n const observables: [Observable<FirebaseUser>, Observable<User>] = [this.getFireUser(), this.getUser()]\n\n return combineLatest(observables).pipe(\n map(([fireUser, user]) => ({\n user,\n isAnonymous: fireUser?.isAnonymous,\n })),\n )\n }\n\n getUser(): Observable<User> {\n return this.getFireUser().pipe(\n map((user) => user?.uid),\n mergeMap((id) => (id ? from(this.userRepository.get({ id })).pipe(catchError(() => of(null))) : of(null))),\n )\n }\n\n getTokenId(): Observable<string> {\n return from(getIdToken(this.angularFireAuth.currentUser))\n }\n\n getFireUser(): Observable<FirebaseUser> {\n return authState(this.angularFireAuth).pipe(catchError(() => of(null)))\n }\n}\n","import { CustomError } from 'ts-custom-error'\n\nexport class InvalidCouponError extends CustomError {\n constructor(message: string) {\n super(message)\n }\n}\n","import { CustomError } from 'ts-custom-error'\n\nimport { InvalidCouponError } from './invalid-coupon.error'\n\nexport class GroupInvalidCouponError extends CustomError {\n constructor(readonly errors: InvalidCouponError[]) {\n super('Many coupon errors throw')\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n Checkout,\n CheckoutSubscription,\n CheckoutTypes,\n Coupon,\n CouponRepository,\n CouponTypes,\n Exclusivities,\n LineItem,\n OrderRepository,\n RepositoryFindResult,\n Shops,\n User,\n Where,\n} from '@infrab4a/connect'\nimport { Observable, from, of, throwError } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { InvalidCouponError } from './errors'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CouponService {\n constructor(\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n ) {}\n\n checkCoupon(\n nickname: string,\n userEmail: string,\n checkoutType: CheckoutTypes,\n plan?: string,\n checkout?: Partial<Checkout>,\n isSubscription?: boolean,\n ): Observable<Coupon> {\n return from(\n this.couponRepository.find({\n filters: {\n nickname: { operator: Where.EQUALS, value: nickname },\n active: { operator: Where.EQUALS, value: true },\n },\n }),\n ).pipe(\n concatMap((coupons) => this.checkCouponRules(coupons, checkoutType, plan, checkout, isSubscription)),\n concatMap((coupon: Coupon) => this.checkCouponUseAndLimit(coupon, userEmail, checkout)),\n map((coupon: Coupon) => this.isValidCoupon(coupon, userEmail)),\n map((coupon: Coupon) => coupon),\n )\n }\n\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\n\n private checkCouponRules(\n coupons: RepositoryFindResult<Coupon>,\n checkoutType: CheckoutTypes,\n plan?: string,\n checkout?: Partial<Checkout>,\n isSubscription?: boolean,\n ) {\n // Caso não ache nenhum cupom, retorna erro\n if (coupons.count < 1) {\n return throwError('Cupom inválido.')\n }\n\n // Get Primeiro Cupom (o find do repository retorna um array)\n const coupon: Coupon = coupons.data.shift()\n // Verifica se o cupom é aplicavel na loja\n const isInShop = coupon.shopAvailability === Shops.ALL || coupon.shopAvailability === this.defaultShop\n\n // Cupon não aplicavel a loja retorna erro\n if (!isInShop) return throwError('Cupom inválido para loja.')\n\n // Verifica se o coupon é aplicado no checkout que está sendo realizado\n const isCheckoutType = coupon.checkoutType === CheckoutTypes.ALL || coupon.checkoutType === checkoutType\n\n // Cupon não aplicavel ao checkout retorna erro\n if (!isCheckoutType) return throwError('Cupom inválido. Erro de checkout.')\n\n // Verifica se o cupom é ou pode ser aplicado para subscription\n if (checkoutType === CheckoutTypes.ALL || checkoutType === CheckoutTypes.SUBSCRIPTION) {\n // Se o cupom tiver um plano associado, verifica se é o mesmo plano do checkout da assinatura\n if (coupon.plan && coupon.plan.toUpperCase() !== plan.toUpperCase())\n return throwError('Cupom inválido para sua assinatura.')\n }\n\n if (isSubscription) return of(coupon)\n\n // Verifica se possui o valor minimo de compra para utilização do cupom\n const hasMinSubTotal = this.hasMinSubTotal(coupon, checkout)\n\n // Se não tem valor mínimo atingido, retorna erro\n if (!hasMinSubTotal)\n return throwError(\n `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\n coupon.minSubTotalValue,\n )} não atingido`,\n )\n\n return of(coupon)\n }\n\n private isValidCoupon(coupon: Coupon, userEmail: string): Coupon {\n // Verifica a data de inicio de validade do cupom\n if (coupon?.beginAt > new Date()) throw new InvalidCouponError('Cupom ainda não liberado.')\n\n // Verifica a data de validade do cupom\n if (coupon?.expiresIn < new Date()) throw new InvalidCouponError('Cupom expirado.')\n\n return coupon\n }\n\n private async checkCouponUseAndLimit(coupon: Coupon, userEmail: string, checkout: Partial<Checkout>) {\n const orders = await this.orderRepository.find({\n filters: {\n coupon: { id: coupon.id },\n payment: { status: 'paid' },\n ...(coupon.influencerEmail ? { user: { email: userEmail } } : {}),\n },\n })\n\n // orders que usuario ja fez com o cupom\n const ordersUserCoupon = orders.data.filter((o) => o.user.email == userEmail)\n\n // Verifica o limite de uso de cupom por usuario\n if (coupon.useLimitPerUser && ordersUserCoupon.length)\n throw new InvalidCouponError('Limite de uso por usuário atingido.')\n\n // Verifica o limite de uso geral por usuario\n if (coupon.useLimit && orders.data.length >= coupon.useLimit)\n throw new InvalidCouponError('Limite de uso atingido.')\n\n const validUser = this.userValidationAndSubscriptionStatus(coupon, checkout?.user)\n if (!validUser) throw new InvalidCouponError('Usuário não elegível.')\n\n const hasProductCategories = await this.hasProductCategories(coupon, checkout)\n\n if (!hasProductCategories) throw 'Seu carrinho não possui produtos elegíveis para desconto.'\n\n return coupon\n }\n\n public calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number> {\n //\n let discount = 0\n\n if (coupon.type === CouponTypes.ABSOLUTE) discount = coupon.discount\n else if (coupon.type === CouponTypes.PERCENTAGE)\n discount = checkout.subscriptionPlan.recurrencePrice * (coupon.discount / 100)\n\n return of(discount)\n }\n\n public async calcDiscountShopping(coupon: Coupon, checkout: Partial<Checkout>): Promise<number> {\n let discount = 0\n\n switch (coupon.type) {\n case CouponTypes.ABSOLUTE: {\n discount = coupon.discount\n break\n }\n case CouponTypes.PERCENTAGE: {\n discount = await this.calcShoppingPercentageDiscount(coupon, checkout)\n break\n }\n }\n\n return discount\n }\n\n private async calcShoppingPercentageDiscount(coupon: Coupon, checkout: Partial<Checkout>): Promise<number> {\n let discount = 0\n const shop = checkout.shop\n let lineItensDiscount = []\n const couponCategories = await this.getCouponCategoriesId(coupon)\n\n if (coupon.productsCategories && coupon.productsCategories.length) {\n lineItensDiscount = checkout.lineItems?.filter((i) => {\n if (i.categories?.length) {\n return i.categories.some((c) => couponCategories.some((cat) => cat.id == c || cat.firestoreId == c))\n }\n return true\n })\n } else {\n lineItensDiscount = checkout.lineItems\n }\n\n const subTotal =\n lineItensDiscount.reduce(\n (acc, curr: LineItem) =>\n checkout.user?.isSubscriber && curr.price?.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n\n discount = subTotal * (coupon.discount / 100)\n\n return discount\n }\n\n private hasMinSubTotal(coupon: Coupon, checkout: Partial<Checkout>): boolean {\n if (!coupon.minSubTotalValue) return true\n\n const shop = checkout.shop\n\n let subTotal =\n checkout.lineItems?.reduce(\n (acc, curr) =>\n checkout.user?.isSubscriber && curr.price?.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n\n if (coupon.minSubTotalValue <= subTotal) return true\n return false\n }\n\n private async hasProductCategories(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.productsCategories || !coupon.productsCategories.length) {\n return true\n }\n\n const couponCategories = await this.getCouponCategoriesId(coupon)\n\n const hasCategories = checkout.lineItems?.filter((i) => {\n if (!i.categories || !i.categories?.length) return true\n return i.categories.some((c) => couponCategories.some((cat) => cat.id == c || cat.firestoreId == c))\n })\n\n return hasCategories.length ? true : false\n }\n\n private userValidationAndSubscriptionStatus(coupon: Coupon, user: User): boolean {\n if (coupon.exclusivityType === Exclusivities.ALL_USERS) return true\n if (!user) return true\n\n // Verifica se o email do usuário é coorporativo\n if (!this.emailIsFromCollaborator(user.email) && coupon.exclusivityType === Exclusivities.COLLABORATORS)\n throw new InvalidCouponError('Você não é colaborador.')\n\n // Verifica se o email do usuário é associado ao cupom de uso por usuario\n if (coupon.exclusivityType === Exclusivities.SPECIFIC_USER && coupon.userExclusiveEmail !== user.email)\n throw new InvalidCouponError('Cupom não é válido para este usuário.')\n\n switch (coupon.exclusivityType) {\n case Exclusivities.ACTIVE_SUBSCRIBER:\n return user.isSubscriber ? true : false\n\n case Exclusivities.INACTIVE_SUBSCRIBER:\n return user.isSubscriber ? false : true\n\n case Exclusivities.NON_SUBSCRIBER:\n return user.isSubscriber ? false : true\n }\n\n return true\n }\n\n private async getCouponCategoriesId(coupon: Coupon) {\n let couponCategories: { id: string; firestoreId: string }[] = []\n\n for (let index = 0; index < coupon.productsCategories.length; index++) {\n let c: Category & { firestoreId?: string } = await this.categoryRepository.get({\n id: coupon.productsCategories[index],\n })\n couponCategories.push({ id: c.id, firestoreId: c.firestoreId })\n }\n\n return couponCategories\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Checkout,\n CheckoutRepository,\n CheckoutTypes,\n Coupon,\n NotFoundError,\n OrderRepository,\n Shops,\n User,\n UserRepository,\n isNil,\n pick,\n} from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { Observable, from, of, throwError } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\nimport { CouponService } from './coupon.service'\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n private readonly couponService: CouponService,\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n const checkoutId = cookie.get('checkoutId')\n\n if (!isNil(checkoutId)) return from(this.checkoutRepository.get({ id: checkoutId }))\n\n return from(this.createCheckout(checkoutData))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n concatMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\n }\n\n clearCheckoutFromSession(): Observable<void> {\n cookie.remove('checkoutId')\n\n return of()\n }\n\n calcDiscount(coupon: Coupon) {\n return this.getCheckout().pipe(\n concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)),\n )\n }\n\n checkCoupon(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon> {\n return this.getCheckout().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon(\n nickname,\n checkout.user?.email,\n CheckoutTypes.ECOMMERCE,\n checkout.user.subscriptionPlan,\n checkout,\n false,\n )\n .pipe(),\n ),\n )\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n shop: checkoutData?.shop || this.defaultShop,\n })\n\n cookie.set('checkoutId', checkout.id)\n\n return checkout\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Buy2Win,\n Buy2WinFirestoreRepository,\n CategoryRepository,\n Checkout,\n isNil,\n LineItem,\n NotFoundError,\n Product,\n ProductRepository,\n RoundProductPricesHelper,\n ShopPrice,\n Shops,\n User,\n Variant,\n VariantRepository,\n Where,\n} from '@infrab4a/connect'\nimport { from, iif, Observable, of, Subject } from 'rxjs'\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\nimport { DEFAULT_SHOP } from '../consts'\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('VariantRepository') private readonly variantRepository: VariantRepository,\n @Inject('Buy2WinRepository') private readonly buy2WinRepository: Buy2WinFirestoreRepository,\n ) {}\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n return from(this.checkoutService.getCheckout()).pipe(\n concatMap(async (checkout) => await this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\n mergeMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.id === item.id)\n\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\n\n return checkout\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n /**\n * @deprecated The method should not be used\n */\n getVariantPriceDiscount(item: LineItem): Observable<number> {\n return this.authService.getUser().pipe(\n concatMap((user) =>\n iif(\n () => user.isSubscriber && !!item.price.subscriberPrice,\n of(item.price.subscriberPrice),\n of(item.price.price),\n ),\n ),\n catchError(() => of(item.price.price)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.id === item.id)\n\n if (index >= 0) checkout.lineItems.splice(index, 1)\n\n return checkout\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n updateUserCart(user: User): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n concatMap(async (checkout) =>\n this.checkoutService\n .updateCheckoutLineItems(\n Checkout.toInstance({\n ...checkout.toPlain(),\n lineItems: checkout.lineItems?.length\n ? await Promise.all(\n checkout.lineItems?.map(async (item) => (await this.buildLineItem({ checkout, item })).lineItem),\n )\n : [],\n }),\n )\n .toPromise(),\n ),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n clearCart(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n this.checkoutService.clearCheckoutFromSession()\n return checkout\n }),\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\n concatMap((checkoutLoaded) => {\n const items: LineItem[] = []\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.id).indexOf(lineItem.id)\n\n if (index > -1) {\n checkoutLoaded.lineItems[index].quantity += quantity\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\n } else\n checkoutLoaded.lineItems = items.concat(\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\n )\n\n return this.checkoutService\n .updateCheckoutLineItems(checkoutLoaded)\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\n }),\n )\n\n private generateCartObject = (items: LineItem[]): Cart =>\n items?.reduce(\n (cart, item) => ({\n ...cart,\n [item.id]: LineItem.toInstance({\n ...(cart[item.id] || item),\n quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n }),\n }),\n {} as Record<string, LineItem>,\n ) || {}\n\n private buildLineItem = async ({\n checkout,\n item,\n quantity,\n }: {\n checkout: RequiredCheckoutData\n item: LineItem\n quantity?: number\n }): Promise<{ checkout: Partial<Checkout>; lineItem: LineItem }> => {\n const product = await this.getProductData(item.id)\n\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.id === item.id)?.quantity || 0\n\n if (this.checkMaxStock(item, quantity || 0))\n throw new Error('Desculpe! Temos apenas ' + item.stock?.quantity + ' em estoque.')\n\n const image = item.image || item.images?.shift()\n const { id, name, EAN, slug, stock, price, weight, sku, type } = item\n const isGift = item.isGift || null\n const pricePaid = this.getProductPrice({\n product: item,\n shop: checkout.shop || this.defaultShop,\n isSubscriber: checkout.user?.isSubscriber,\n })\n\n RoundProductPricesHelper.roundProductPrices(item)\n\n return {\n checkout,\n lineItem: LineItem.toInstance({\n id,\n name: name ?? product.name,\n EAN: EAN ?? product.EAN,\n brand: product.brand,\n slug: slug ?? product.slug,\n sku: sku ?? product.sku,\n stock,\n price: this.roundPrice(price),\n image,\n weight: weight ?? product.weight,\n quantity: (item.quantity || 0) + (quantity || 0),\n pricePaid,\n categories: product.categories ?? [],\n isGift: isGift ?? null,\n costPrice: product.costPrice ?? 0,\n type,\n }),\n }\n }\n\n private roundPrice(productPrice: ShopPrice): ShopPrice {\n const { price, fullPrice, subscriberPrice } = productPrice\n return {\n ...productPrice,\n price: Number(price.toFixed(2)),\n fullPrice: Number(fullPrice.toFixed(2)),\n ...(subscriberPrice && { subscriberPrice: Number(subscriberPrice.toFixed(2)) }),\n }\n }\n\n private async getProductData(productId: string): Promise<Partial<Product>> {\n let product: Product\n let variant: Variant\n\n try {\n product = await this.productRepository.get({ id: productId })\n } catch (error) {\n if (!(error instanceof NotFoundError)) throw error\n\n const { data: variants } = await this.variantRepository.find({ filters: { id: productId } })\n\n variant = variants.shift()\n\n if (!variant) throw error\n\n product = await this.productRepository.get({ id: variant.productId })\n }\n\n return {\n ...product.toPlain(),\n ...(variant && { ...variant.toPlain() }),\n }\n }\n\n private getProductPrice = ({\n product,\n isSubscriber,\n }: {\n product: LineItem\n shop: Shops\n isSubscriber: boolean\n }): number => {\n const info = product.price\n\n if (product.isGift) return 0\n\n return isSubscriber && info.subscriberPrice > 0\n ? Number(info.subscriberPrice.toFixed(2))\n : Number(info.price.toFixed(2))\n }\n\n private checkMaxStock = (item: LineItem, quantity: number) => {\n const maxStock = item.stock?.quantity || 0\n const currentItemAmount = item.quantity || 0\n\n return currentItemAmount + quantity > maxStock\n }\n\n getGifts() {\n return this.checkoutService.getCheckout().pipe(\n mergeMap(async (checkout) => {\n const notGiftItems: LineItem[] = checkout.lineItems ? checkout.lineItems.filter((item) => !item.isGift) : []\n\n if (!notGiftItems.length) return { ...checkout, lineItems: [] } as Checkout\n\n const cartTotal = notGiftItems.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\n\n const campaigns = await this.buy2WinRepository\n .find({\n filters: {\n active: { operator: Where.EQUALS, value: true },\n shop: { operator: Where.EQUALS, value: this.defaultShop },\n },\n })\n .then((data) => data.data)\n\n if (!campaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const elegibleCampaigns: Buy2Win[] = []\n\n for (const campaign of campaigns) {\n const today = new Date()\n\n if (!(campaign.startDate <= today) && !(campaign.endDate >= today)) continue\n\n if (campaign.activeCategory) {\n const categoriesCampaing = campaign.categories.map((c) => c.id.toString())\n const categoriesCampaingFullTree = []\n\n for (const id of categoriesCampaing) {\n const children = await this.categoryRepository.getChildren(parseInt(id))\n\n categoriesCampaingFullTree.push(id, ...children.map((c) => c.id.toString()))\n }\n\n const categoriesCampaingTree = [...new Set(categoriesCampaingFullTree)]\n const filterProductsCategories = checkout.lineItems.filter((l) => {\n if (!l.categories || !l.categories?.length) return true\n\n return l.categories.some((c) => categoriesCampaingTree.some((cat) => cat == c))\n })\n\n if (filterProductsCategories.length) {\n const cartTotalCategories = filterProductsCategories.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\n\n if (cartTotalCategories >= campaign.cartValueMin) elegibleCampaigns.push(campaign)\n }\n } else {\n if (campaign.cartValue && campaign.cartValue > 0) {\n if (campaign.cartValue <= cartTotal) elegibleCampaigns.push(campaign)\n }\n }\n }\n\n if (!elegibleCampaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const campaingnProducts: Product[][] = []\n\n for (const campaign of elegibleCampaigns) {\n let elegibleProducts = []\n\n for (const product of campaign.products) {\n const { data: productData } = await this.productRepository.find({ filters: { sku: product } })\n\n if (!productData.length) continue\n\n const gift = productData.shift()\n\n if (gift.stock.quantity < 1) continue\n\n elegibleProducts.push(gift)\n }\n\n campaingnProducts.push(elegibleProducts)\n }\n\n if (!campaingnProducts.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const gifts = this.giftToLineItems([].concat(...campaingnProducts))\n\n return { ...checkout, lineItems: notGiftItems.concat(gifts) }\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private giftToLineItems(items: Product[]): LineItem[] {\n return items.map((item) => {\n const { brand, categories, id, name, price, sku, slug, stock, weight, EAN } = item\n\n const image = item?.miniatures?.length ? item.miniatures[0] : item.images[0]\n\n return LineItem.toInstance({\n brand,\n categories,\n id: id.toString(),\n name,\n price,\n sku,\n slug,\n stock,\n weight,\n EAN,\n image,\n pricePaid: 0,\n quantity: 1,\n isGift: true,\n })\n })\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n Product,\n ProductGender,\n ProductRepository,\n RepositoryFindFielters,\n RepositoryOrderBy,\n set,\n Where,\n} from '@infrab4a/connect'\nimport { ProductSort } from './types/product-sort.type'\n\ntype FetchProductsFilters = {\n clubDiscount?: number[]\n brands?: string[]\n prices?: { min?: number; max?: number; subscriberPrice?: boolean }\n gender?: ProductGender[]\n customOptions?: string[]\n}\n\ntype FetchProductsOptions = { page?: number; perPage?: number; filters?: FetchProductsFilters; sort?: ProductSort }\n\ntype FetchProductsResponse = {\n products: { data: Product[]; total: number }\n pages: number\n prices: {\n price: { min: number; max: number }\n subscriberPrice: { min: number; max: number }\n }\n}\n\n@Injectable()\nexport class CatalogService {\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n ) {}\n\n async fetchProducts(category: Category, options?: FetchProductsOptions): Promise<FetchProductsResponse> {\n const productsIds = category.products?.length\n ? category.products\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\n const limits = this.buildLimitQuery(options)\n\n return await this.productRepository\n .find({\n filters: {\n id: { operator: Where.IN, value: productsIds },\n published: true,\n ...this.buildFilterQuery(options?.filters || {}),\n },\n ...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),\n limits,\n options: { minimal: ['price'], maximum: ['price'] },\n })\n .then(({ data, count: total, maximum, minimal }) => ({\n products: { data, total },\n pages: Math.ceil(total / limits.limit),\n prices: {\n price: { min: minimal.price.price, max: maximum.price.price },\n subscriberPrice: { min: minimal.price.subscriberPrice, max: maximum.price.subscriberPrice },\n },\n }))\n }\n\n private buildFilterQuery = ({\n clubDiscount,\n brands,\n prices,\n gender,\n }: FetchProductsFilters): RepositoryFindFielters<Product> => {\n const filters = {} as RepositoryFindFielters<Product>\n\n if (clubDiscount?.length)\n set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount })\n if (brands?.length) filters.brand = { operator: Where.IN, value: brands }\n if (gender?.length)\n filters.tags = {\n operator: Where.IN,\n value: gender\n .map((genderOptions) =>\n genderOptions === 'female' ? 'feminino' : genderOptions === 'male' ? 'masculino' : null,\n )\n .filter(Boolean),\n }\n if (prices?.min || prices?.max)\n set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [\n ...(prices.min ? [{ operator: Where.GTE, value: prices.min }] : []),\n ...(prices.max ? [{ operator: Where.LTE, value: prices.max }] : []),\n ])\n\n return filters\n }\n\n private buildSortQuery = (sort: ProductSort): RepositoryOrderBy<Product> => {\n if (!sort || sort === 'most-relevant') return {}\n\n if (sort === 'best-sellers') return { shoppingCount: 'desc' }\n if (sort === 'biggest-price') return { price: 'desc' }\n if (sort === 'lowest-price') return { price: 'asc' }\n if (sort === 'best-rating') return { rate: 'desc' }\n }\n\n private buildLimitQuery = (options: { page?: number; perPage?: number }): { limit?: number; offset?: number } => {\n const limit = options?.perPage || 20\n\n return {\n limit,\n offset: ((options?.page || 1) - 1) * limit,\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryFilterRepository,\n CategoryRepository,\n Filter,\n ProductRepository,\n Where,\n} from '@infrab4a/connect'\nimport { CategoryWithTree } from './models'\n\n@Injectable()\nexport class CategoryService {\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('CategoryFilterRepository') private readonly categoryFilterRepository: CategoryFilterRepository,\n ) {}\n\n async fetchBrands(category: Category): Promise<Category[]> {\n const productsIds = category.products?.length\n ? category.products\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\n const brands = await this.productRepository\n .find({\n filters: {\n id: { operator: Where.IN, value: productsIds },\n published: true,\n },\n fields: ['brand'],\n })\n .then(({ data }) =>\n Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})),\n )\n\n return this.categoryRepository\n .find({ filters: { brandCategory: true }, orderBy: { name: 'asc' } })\n .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)))\n }\n\n async fetchSubCategories(category: Category): Promise<CategoryWithTree[]> {\n return []\n }\n\n async fetchFilterOptions(category: Category, filters?: string[]): Promise<Filter[]> {\n const categoryFilters =\n category.filters && category.filters.length\n ? category.filters\n : await this.categoryFilterRepository\n .find({ filters: { categoryId: +category.id } })\n .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter))\n\n return filters?.length\n ? categoryFilters.filter(\n (categoryFilter) =>\n !filters || !filters.length || categoryFilter.options.some((option) => filters.includes(option.id)),\n )\n : categoryFilters\n }\n}\n","export enum ProductSorts {\n MOST_RELEVANT = 'most-relevant',\n BEST_SELLER = 'best-sellers',\n BIGGEST_PRICE = 'biggest-price',\n LOWEST_PRICE = 'lowest-price',\n BIGGEST_DISCOUNT = 'biggest-discount',\n BEST_RATING = 'best-rating',\n}\n","import { Type } from 'class-transformer'\n\nimport { Category } from '@infrab4a/connect'\n\nexport class CategoryWithTree extends Category {\n @Type(() => CategoryWithTree)\n children?: CategoryWithTree[]\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CheckoutSubscription,\n CheckoutSubscriptionRepository,\n CheckoutTypes,\n Coupon,\n isNil,\n pick,\n SubscriptionRepository,\n} from '@infrab4a/connect'\nimport cookie from 'js-cookie'\nimport { from, Observable, of } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\nimport { RequiredCheckoutSubscriptionData } from './types'\n\nimport { CouponService } from './coupon.service'\n\n@Injectable()\nexport class CheckoutSubscriptionService {\n constructor(\n @Inject('CheckoutSubscriptionRepository')\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\n @Inject('SubscriptionRepository') private readonly subscriptionRepository: SubscriptionRepository,\n private readonly couponService: CouponService,\n ) {}\n\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\n const checkoutId = cookie.get('checkoutSubscriptionId')\n\n if (!isNil(checkoutId)) return from(this.checkoutSubscriptionRepository.get({ id: checkoutId }))\n\n return from(this.createCheckoutSubscription(checkoutData))\n }\n\n private async createCheckoutSubscription(\n checkoutData?: RequiredCheckoutSubscriptionData,\n ): Promise<CheckoutSubscription> {\n const checkout = await this.checkoutSubscriptionRepository.create({\n createdAt: new Date(),\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n })\n\n cookie.set('checkoutSubscriptionId', checkout.id)\n\n return checkout\n }\n\n clearCheckoutSubscriptionFromSession(): Observable<void> {\n cookie.remove('checkoutSubscriptionId')\n\n return of()\n }\n\n checkCoupon(nickname: string, userEmail: string): Observable<Coupon> {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon(nickname, userEmail, CheckoutTypes.SUBSCRIPTION, checkout.subscriptionPlan.name, checkout, true)\n .pipe(),\n ),\n )\n }\n\n calcDiscountSubscription(coupon: Coupon) {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()),\n )\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n add,\n Banner,\n Category,\n CategoryRepository,\n Home,\n HomeCategoryGroup,\n HomeData,\n HomeRepository,\n pick,\n Product,\n ProductRepository,\n RequiredArgumentError,\n Shops,\n Where,\n} from '@infrab4a/connect'\nimport { forkJoin, from, Observable, of, throwError } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\n\n@Injectable()\nexport class HomeShopService {\n private homeConfiguration: Home\n\n private get homeId(): HomeConfigurationId {\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\n\n return null\n }\n\n constructor(\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getHomeData(): Observable<Home> {\n return this.getHomeConfiguration().pipe(\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\n concatMap((home) =>\n home\n ? of(home)\n : forkJoin([this.getDiscoverProducts(), this.getFeaturedProducts(), this.getVerticalProducts()]).pipe(\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\n discoverProducts,\n featuredProducts,\n verticalProducts,\n })),\n concatMap((data) => this.saveHomeData(data)),\n ),\n ),\n )\n }\n\n getBanners(type: BannerType): Observable<Banner[]> {\n return this.getHomeConfiguration().pipe(\n map((home) => {\n if (type === 'brand') return home.brandsCarousel\n if (type === 'buyToWin') return [home.buyToWinBanner]\n if (type === 'block') return home.blockBanners\n if (type === 'blog') return [home.blogBanner]\n\n return []\n }),\n )\n }\n\n getMinValueForFreeShipping(): Observable<number> {\n return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping))\n }\n\n private getDiscoverProducts(): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getFeaturedProducts(): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getVerticalProducts(): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n forkJoin(\n home.verticalCarousels.filter(Boolean).map((id) =>\n from(this.categoryRepository.get({ id })).pipe(\n concatMap((category) =>\n from(\n this.productRepository.find({\n filters: { categories: { operator: Where.IN, value: [category.id] } },\n limits: { limit: 12 },\n }),\n ).pipe(map((products) => ({ category, products }))),\n ),\n map(({ category, products }) => ({ category, products: products.data })),\n map(this.buildCategoryGroupWithRequiredData),\n ),\n ),\n ),\n ),\n )\n }\n\n private getHomeConfiguration(): Observable<Home> {\n return of(this.homeConfiguration).pipe(\n concatMap((home) =>\n home\n ? of(home)\n : !this.homeId\n ? throwError(new RequiredArgumentError(['homeId']))\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\n ),\n ),\n )\n }\n\n private saveHomeData(homeData: HomeData): Observable<Home> {\n const data = {\n createdAt: new Date(),\n expiresAt: add(new Date(), { hours: 1 }),\n data: homeData,\n }\n\n return from(\n this.homeRepository.update({\n id: this.homeId,\n data,\n }),\n ).pipe(\n tap(() => (this.homeConfiguration.data = data)),\n map(() => this.homeConfiguration),\n )\n }\n\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\n category: Category.toInstance(pick(group?.category?.toPlain() || {}, ['id', 'name', 'slug', 'conditions'])),\n products:\n group?.products?.map((product) =>\n Product.toInstance(\n pick(product?.toPlain() || {}, [\n 'id',\n 'price',\n 'reviews',\n 'hasVariants',\n 'slug',\n 'sku',\n 'stock',\n 'costPrice',\n 'images',\n 'miniatures',\n 'name',\n 'weight',\n 'rate',\n 'type',\n ]),\n ),\n ) || [],\n })\n}\n","import { Injectable, Inject } from '@angular/core'\nimport { doc, Firestore, docSnapshots } from '@angular/fire/firestore'\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\nimport { Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\n@Injectable()\nexport class OrderService {\n orderSubject = new Subject<Order>()\n\n constructor(\n private readonly angularFirestore: Firestore,\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\n ) {}\n\n getOrder(id: string): Subject<Order> {\n docSnapshots(doc(this.angularFirestore, `${this.orderRepository.collectionName}/${id}`))\n .pipe(map((doc) => Order.toInstance(doc.data())))\n .subscribe((doc) => this.orderSubject.next(doc))\n\n return this.orderSubject\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Home, Shops } from '@infrab4a/connect'\nimport { Observable, combineLatest } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { BACKEND_URL } from '../consts'\nimport { HomeShopService } from './home-shop.service'\nimport { ShippingMethodResponse } from './types/shipping-methods.type'\n\n@Injectable()\nexport class ShippingService {\n constructor(\n private http: HttpClient,\n @Inject(BACKEND_URL) private apiUrl: string,\n private homeService: HomeShopService,\n ) {}\n\n public getShippingMethods(\n shop: string,\n zip: string,\n weightGrams: number,\n totalPrice: number,\n personId: string,\n subscriptionPlan?: string,\n ): Observable<Array<ShippingMethodResponse & { ShippingCompanyName?: string }>> {\n return combineLatest([\n this.homeService.getHomeData(),\n this.http.get(\n `${this.apiUrl}open/checkshippingcompany?personId=${personId}&postalCode=${zip}&weightGrams=${weightGrams}`,\n ),\n ]).pipe(\n map(([datas, shippingMethodsResponse]: [Home & Partial<{ sameDayNotAvaliable: any }>, any]) => {\n let shippingMethods = shippingMethodsResponse.result as (ShippingMethodResponse & {\n ShippingCompanyName?: string\n })[]\n\n if (!shippingMethods.length) return []\n\n shippingMethods = shippingMethods.map((shippingMethod) => {\n if (shippingMethod.ShippingCompanyName == 'Same Day EG') shippingMethod.ShippingCompanyName = 'Same Day'\n\n return shippingMethod\n })\n\n const datasSameDayNotAvaliable = datas.sameDayNotAvaliable\n\n if (this.isHolidays(datasSameDayNotAvaliable)) {\n shippingMethods = shippingMethods.filter((method) => method.serviceName !== 'Same Day')\n }\n\n if (totalPrice >= 200) {\n shippingMethods = shippingMethods.map((s) => {\n if (s.serviceName !== 'Same Day') return { ...s, totalPrice: 0 }\n else return s\n })\n }\n\n if (shop == Shops.GLAMSHOP) return shippingMethods\n\n if (this.isFreeShippingBySubscription(shop, subscriptionPlan)) {\n shippingMethods = shippingMethods.map((s) => {\n if (s.serviceName == 'Same Day') return { ...s, totalPrice: s.totalPrice / 2 }\n else return { ...s, totalPrice: 0 }\n })\n }\n\n if (this.isHalfShippingBySubscription(shop, subscriptionPlan)) {\n shippingMethods = shippingMethods.map((s) => {\n return { ...s, totalPrice: s.totalPrice / 2 }\n })\n }\n\n return shippingMethods\n }),\n )\n }\n\n private isFreeShippingBySubscription(shop: string, subscriptionPlan: string): boolean {\n if (!subscriptionPlan) return false\n\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'SELECT') return true\n\n return false\n }\n\n private isHalfShippingBySubscription(shop: string, subscriptionPlan: string) {\n if (!subscriptionPlan) return false\n\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'PRIME') {\n return true\n }\n\n return false\n }\n\n private isHolidays(datas: any): boolean {\n const today = new Date()\n\n for (const key in datas) {\n let start = new Date(`${today.getFullYear()}-${datas[key].beginDate}`)\n let end = new Date(`${today.getFullYear()}-${datas[key].endDate}`)\n\n if (start > end) end = new Date(`${today.getFullYear() + 1}-${datas[key].endDate}`)\n\n if (today >= start && today <= end) return true\n }\n\n return false\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseOptions } from '@angular/fire/app'\nimport { AxiosElasticSearchConfig, Shops, isNil } from '@infrab4a/connect'\n\nimport { AngularFirebaseAuthModule } from './angular-firebase-auth.module'\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\nimport { BACKEND_URL, DEFAULT_SHOP, ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS, HASURA_OPTIONS } from './consts'\nimport {\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n ShippingService,\n} from './services'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [AngularFirebaseAuthModule, AngularFirestoreModule, AngularHasuraGraphQLModule],\n providers: [\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n ShippingService,\n ],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n hasura: HasuraGraphQLOptions\n backendUrl: string\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularConnectModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\n ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","initializeApp","i1.AuthService","i2.CheckoutService","i1.CouponService","i2.HomeShopService"],"mappings":"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"}
|