@infrab4a/connect-angular 5.3.0-beta.1 → 5.3.1-beta.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,84 @@ 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
+ orderId: order.id,
3027
+ orderNumber: order.orderNumber,
3028
+ isEdition: false,
3029
+ name: item.name,
3030
+ image: item.image,
3031
+ deliveryDate: order.deliveredAt || null,
3032
+ evaluationInAnalysis: review ? true : false,
3033
+ shopProductSlug: item.slug,
3034
+ };
3035
+ }
3036
+ async createReview(review) {
3037
+ return this.productReviewRepository.create(ProductReview.toInstance({
3038
+ productId: review.productId.toString(),
3039
+ shop: review.shop,
3040
+ rate: review.rate,
3041
+ author: review.author,
3042
+ email: review.email,
3043
+ location: review.location,
3044
+ review: review.comment,
3045
+ title: review.title,
3046
+ personId: review.personId,
3047
+ points: review.points,
3048
+ orderId: review.orderId,
3049
+ }));
3050
+ }
3051
+ }
3052
+ 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 });
3053
+ OrderProductReviewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService });
3054
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: OrderProductReviewService, decorators: [{
3055
+ type: Injectable
3056
+ }], ctorParameters: function () { return [{ type: i3.OrderFirestoreRepository, decorators: [{
3057
+ type: Inject,
3058
+ args: ['OrderRepository']
3059
+ }] }, { type: undefined, decorators: [{
3060
+ type: Inject,
3061
+ args: ['ProductReviewRepository']
3062
+ }] }]; } });
3063
+
2986
3064
  class OrderService {
2987
3065
  constructor(angularFirestore, orderRepository) {
2988
3066
  this.angularFirestore = angularFirestore;
@@ -3119,6 +3197,7 @@ AngularConnectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
3119
3197
  },
3120
3198
  CouponRepositoriesFacade,
3121
3199
  HomeShopRepositoriesFacade,
3200
+ OrderProductReviewService,
3122
3201
  ], imports: [provideFirebaseApp((injector) => {
3123
3202
  const appName = injector.get(FIREBASE_APP_NAME);
3124
3203
  try {
@@ -3261,6 +3340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
3261
3340
  },
3262
3341
  CouponRepositoriesFacade,
3263
3342
  HomeShopRepositoriesFacade,
3343
+ OrderProductReviewService,
3264
3344
  ],
3265
3345
  }]
3266
3346
  }] });
@@ -3269,5 +3349,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
3269
3349
  * Generated bundle index. Do not edit.
3270
3350
  */
3271
3351
 
3272
- export { AngularConnectModule, AngularFirebaseAuthModule, AngularFirestoreModule, AngularHasuraGraphQLModule, AuthService, CartService, CatalogService, CategoryService, CategoryWithTree, CheckoutService, CheckoutSubscriptionService, CookieDataPersistence, CouponService, HomeShopService, NewCategoryStructureAdapter, OldCategoryStructureAdapter, OrderService, ProductSorts, UtilHelper, WishlistService };
3352
+ export { AngularConnectModule, AngularFirebaseAuthModule, AngularFirestoreModule, AngularHasuraGraphQLModule, AuthService, CartService, CatalogService, CategoryService, CategoryWithTree, CheckoutService, CheckoutSubscriptionService, CookieDataPersistence, CouponService, HomeShopService, NewCategoryStructureAdapter, OldCategoryStructureAdapter, OrderProductReviewService, OrderService, ProductSorts, UtilHelper, WishlistService };
3273
3353
  //# sourceMappingURL=infrab4a-connect-angular.mjs.map