Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 2x 2x 2x 2x | import { Injectable } from '@angular/core';
import { Store, select } from '@ngrx/store';
import { ProductReview, ProductReviewCreationType } from '../models/product-reviews/product-review.model';
import {
createProductReview,
deleteProductReview,
getProductReviewsBySku,
getProductReviewsError,
getProductReviewsLoading,
loadProductReviews,
resetProductReviewError,
} from '../store/product-reviews';
@Injectable({ providedIn: 'root' })
export class ProductReviewsFacade {
constructor(private store: Store) {}
productReviewsError$ = this.store.pipe(select(getProductReviewsError));
productReviewsLoading$ = this.store.pipe(select(getProductReviewsLoading));
getProductReviews$(sku: string) {
this.store.dispatch(loadProductReviews({ sku }));
return this.store.pipe(select(getProductReviewsBySku(sku)));
}
createProductReview(sku: string, review: ProductReviewCreationType) {
this.store.dispatch(createProductReview({ sku, review }));
}
deleteProductReview(sku: string, review: ProductReview): void {
this.store.dispatch(deleteProductReview({ sku, review }));
}
resetProductReviewError() {
this.store.dispatch(resetProductReviewError());
}
}
|