@infrab4a/connect-angular 5.3.0-beta.1 → 5.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ import { provideAppCheck, initializeAppCheck } from '@angular/fire/app-check';
7
7
  import * as i3$1 from '@angular/fire/storage';
8
8
  import { Storage, provideStorage, getStorage } from '@angular/fire/storage';
9
9
  import * as i3 from '@infrab4a/connect';
10
- import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, GroupFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, LogFirestoreRepository, SequenceFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductsVertexSearch, VertexAxiosAdapter, isNil, NotFoundError, Checkout, pick, LineItem, Where, isEmpty, Shops, set, InvalidArgumentError, RoundProductPricesHelper, Category, WishlistLogType, PersonTypes, Wishlist, CheckoutTypes, CouponTypes, Exclusivities, OrderStatus, CheckoutSubscription, Product, RequiredArgumentError, add, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
10
+ import { ProductsIndex, AxiosAdapter, Authentication, AuthenticationFirebaseAuthService, Register, RegisterFirebaseAuthService, SignOut, RecoveryPassword, ConnectFirestoreService, UserBeautyProfileFirestoreRepository, Buy2WinFirestoreRepository, CategoryFirestoreRepository, CheckoutFirestoreRepository, CheckoutSubscriptionFirestoreRepository, CouponFirestoreRepository, CampaignHashtagFirestoreRepository, CampaignDashboardFirestoreRepository, SubscriptionEditionFirestoreRepository, GroupFirestoreRepository, HomeFirestoreRepository, LeadFirestoreRepository, LegacyOrderFirestoreRepository, ShopMenuFirestoreRepository, OrderFirestoreRepository, PaymentFirestoreRepository, ProductFirestoreRepository, ShopSettingsFirestoreRepository, SubscriptionPaymentFirestoreRepository, SubscriptionPlanFirestoreRepository, SubscriptionProductFirestoreRepository, SubscriptionFirestoreRepository, UserFirestoreRepository, UserAddressFirestoreRepository, UserPaymentMethodFirestoreRepository, SubscriptionMaterializationFirestoreRepository, SubscriptionSummaryFirestoreRepository, ProductVariantFirestoreRepository, OrderBlockedFirestoreRepository, LogFirestoreRepository, SequenceFirestoreRepository, CategoryHasuraGraphQLRepository, ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository, ProductReviewHasuraGraphQLRepository, VariantHasuraGraphQLRepository, ProductStockNotificationHasuraGraphQLRepository, FilterOptionHasuraGraphQLRepository, FilterHasuraGraphQLRepository, CategoryCollectionChildrenHasuraGraphQLRepository, CategoryProductHasuraGraphQLRepository, WishlistHasuraGraphQLRepository, ProductErrorsHasuraGraphQLRepository, ProductsVertexSearch, VertexAxiosAdapter, isNil, NotFoundError, Checkout, pick, LineItem, Where, isEmpty, Shops, set, InvalidArgumentError, RoundProductPricesHelper, Category, WishlistLogType, PersonTypes, Wishlist, CheckoutTypes, CouponTypes, Exclusivities, OrderStatus, CheckoutSubscription, Product, RequiredArgumentError, add, ProductReview, Order, UpdateUserImage, FirebaseFileUploaderService } from '@infrab4a/connect';
11
11
  import * as i1 from '@angular/fire/auth';
12
12
  import { Auth, provideAuth, initializeAuth, indexedDBLocalPersistence, browserLocalPersistence, browserSessionPersistence, getAuth, getIdToken, authState } from '@angular/fire/auth';
13
13
  import { isPlatformBrowser, isPlatformServer } from '@angular/common';
@@ -2983,6 +2983,82 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
2983
2983
  type: Injectable
2984
2984
  }], ctorParameters: function () { return [{ type: HomeShopRepositoriesFacade }, { type: ConfigurationFacade }]; } });
2985
2985
 
2986
+ class OrderProductReviewService {
2987
+ constructor(orderRepository, productReviewRepository) {
2988
+ this.orderRepository = orderRepository;
2989
+ this.productReviewRepository = productReviewRepository;
2990
+ }
2991
+ async getPendingReviewsByEmail(email) {
2992
+ const products = [];
2993
+ const { data: orders } = await this.orderRepository.find({
2994
+ filters: {
2995
+ user: {
2996
+ email: email,
2997
+ },
2998
+ status: OrderStatus.ENTREGUE,
2999
+ },
3000
+ orderBy: {
3001
+ createdAt: 'desc',
3002
+ },
3003
+ });
3004
+ if (orders.length) {
3005
+ for (const order of orders) {
3006
+ const lineItems = order.lineItems.filter((item) => !item.isGift);
3007
+ for (const item of lineItems) {
3008
+ const productReview = await this.productReviewRepository
3009
+ .find({
3010
+ filters: {
3011
+ orderId: order.id,
3012
+ productId: item.id,
3013
+ status: { operator: Where.ISNULL },
3014
+ },
3015
+ })
3016
+ .then((res) => res.data.at(0));
3017
+ products.push(this.buildProductReview(order, item, productReview));
3018
+ }
3019
+ }
3020
+ }
3021
+ return products;
3022
+ }
3023
+ buildProductReview(order, item, review) {
3024
+ return {
3025
+ id: item.id,
3026
+ isEdition: false,
3027
+ name: item.name,
3028
+ image: item.image,
3029
+ deliveryDate: order.deliveredAt || null,
3030
+ evaluationInAnalysis: review ? true : false,
3031
+ shopProductSlug: item.slug,
3032
+ };
3033
+ }
3034
+ async createReview(review) {
3035
+ return this.productReviewRepository.create(ProductReview.toInstance({
3036
+ productId: review.productId.toString(),
3037
+ shop: review.shop,
3038
+ rate: review.rate,
3039
+ author: review.author,
3040
+ email: review.email,
3041
+ location: review.location,
3042
+ review: review.comment,
3043
+ title: review.title,
3044
+ personId: review.personId,
3045
+ points: review.points,
3046
+ orderId: review.orderId,
3047
+ }));
3048
+ }
3049
+ }
3050
+ OrderProductReviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, deps: [{ token: 'OrderRepository' }, { token: 'ProductReviewRepository' }], target: i0.ɵɵFactoryTarget.Injectable });
3051
+ OrderProductReviewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService });
3052
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, decorators: [{
3053
+ type: Injectable
3054
+ }], ctorParameters: function () { return [{ type: i3.OrderFirestoreRepository, decorators: [{
3055
+ type: Inject,
3056
+ args: ['OrderRepository']
3057
+ }] }, { type: undefined, decorators: [{
3058
+ type: Inject,
3059
+ args: ['ProductReviewRepository']
3060
+ }] }]; } });
3061
+
2986
3062
  class OrderService {
2987
3063
  constructor(angularFirestore, orderRepository) {
2988
3064
  this.angularFirestore = angularFirestore;
@@ -3119,6 +3195,7 @@ AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
3119
3195
  },
3120
3196
  CouponRepositoriesFacade,
3121
3197
  HomeShopRepositoriesFacade,
3198
+ OrderProductReviewService,
3122
3199
  ], imports: [provideFirebaseApp((injector) => {
3123
3200
  const appName = injector.get(FIREBASE_APP_NAME);
3124
3201
  try {
@@ -3261,6 +3338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
3261
3338
  },
3262
3339
  CouponRepositoriesFacade,
3263
3340
  HomeShopRepositoriesFacade,
3341
+ OrderProductReviewService,
3264
3342
  ],
3265
3343
  }]
3266
3344
  }] });
@@ -3269,5 +3347,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
3269
3347
  * Generated bundle index. Do not edit.
3270
3348
  */
3271
3349
 
3272
- export { AngularConnectModule, AngularFirebaseAuthModule, AngularFirestoreModule, AngularHasuraGraphQLModule, AuthService, CartService, CatalogService, CategoryService, CategoryWithTree, CheckoutService, CheckoutSubscriptionService, CookieDataPersistence, CouponService, HomeShopService, NewCategoryStructureAdapter, OldCategoryStructureAdapter, OrderService, ProductSorts, UtilHelper, WishlistService };
3350
+ export { AngularConnectModule, AngularFirebaseAuthModule, AngularFirestoreModule, AngularHasuraGraphQLModule, AuthService, CartService, CatalogService, CategoryService, CategoryWithTree, CheckoutService, CheckoutSubscriptionService, CookieDataPersistence, CouponService, HomeShopService, NewCategoryStructureAdapter, OldCategoryStructureAdapter, OrderProductReviewService, OrderService, ProductSorts, UtilHelper, WishlistService };
3273
3351
  //# sourceMappingURL=infrab4a-connect-angular.mjs.map