@spartacus/core
Version:
Spartacus - the core framework
42 lines • 6.33 kB
JavaScript
import { Injectable } from '@angular/core';
import { combineLatest } from 'rxjs';
import { filter, switchMap, take } from 'rxjs/operators';
import { CommandStrategy, } from '../../util/command-query/command.service';
import * as i0 from "@angular/core";
import * as i1 from "../connectors/validation/cart-validation.connector";
import * as i2 from "../../util/command-query/command.service";
import * as i3 from "../../auth/user-auth/facade/user-id.service";
import * as i4 from "./active-cart.service";
export class CartValidationService {
constructor(cartValidationConnector, command, userIdService, activeCartService) {
this.cartValidationConnector = cartValidationConnector;
this.command = command;
this.userIdService = userIdService;
this.activeCartService = activeCartService;
this.validateCartCommand = this.command.create(() => combineLatest([
this.activeCartService.getActiveCartId(),
this.userIdService.takeUserId(),
this.activeCartService.isStable(),
]).pipe(filter(([_, __, loaded]) => loaded), take(1), switchMap(([cartId, userId]) => this.cartValidationConnector.validate(cartId, userId))), {
strategy: CommandStrategy.CancelPrevious,
});
}
/**
* Returns cart modification list.
*
* @param cartId
* @param userId
*/
validateCart() {
return this.validateCartCommand.execute();
}
}
CartValidationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartValidationService, deps: [{ token: i1.CartValidationConnector }, { token: i2.CommandService }, { token: i3.UserIdService }, { token: i4.ActiveCartService }], target: i0.ɵɵFactoryTarget.Injectable });
CartValidationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartValidationService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: CartValidationService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i1.CartValidationConnector }, { type: i2.CommandService }, { type: i3.UserIdService }, { type: i4.ActiveCartService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydC12YWxpZGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9jYXJ0L2ZhY2FkZS9jYXJ0LXZhbGlkYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUdMLGVBQWUsR0FDaEIsTUFBTSwwQ0FBMEMsQ0FBQzs7Ozs7O0FBT2xELE1BQU0sT0FBTyxxQkFBcUI7SUFvQmhDLFlBQ1ksdUJBQWdELEVBQ2hELE9BQXVCLEVBQ3ZCLGFBQTRCLEVBQzVCLGlCQUFvQztRQUhwQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUF2QnRDLHdCQUFtQixHQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FDakIsR0FBRyxFQUFFLENBQ0gsYUFBYSxDQUFDO1lBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRTtZQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFO1NBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFDbkMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FDN0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQ3RELENBQ0YsRUFDSDtZQUNFLFFBQVEsRUFBRSxlQUFlLENBQUMsY0FBYztTQUN6QyxDQUNGLENBQUM7SUFPRCxDQUFDO0lBRUo7Ozs7O09BS0c7SUFDSCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsQ0FBQzs7a0hBbkNVLHFCQUFxQjtzSEFBckIscUJBQXFCLGNBRnBCLE1BQU07MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVXNlcklkU2VydmljZSB9IGZyb20gJy4uLy4uL2F1dGgvdXNlci1hdXRoL2ZhY2FkZS91c2VyLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FydE1vZGlmaWNhdGlvbkxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbC9jYXJ0Lm1vZGVsJztcbmltcG9ydCB7XG4gIENvbW1hbmQsXG4gIENvbW1hbmRTZXJ2aWNlLFxuICBDb21tYW5kU3RyYXRlZ3ksXG59IGZyb20gJy4uLy4uL3V0aWwvY29tbWFuZC1xdWVyeS9jb21tYW5kLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FydFZhbGlkYXRpb25Db25uZWN0b3IgfSBmcm9tICcuLi9jb25uZWN0b3JzL3ZhbGlkYXRpb24vY2FydC12YWxpZGF0aW9uLmNvbm5lY3Rvcic7XG5pbXBvcnQgeyBBY3RpdmVDYXJ0U2VydmljZSB9IGZyb20gJy4vYWN0aXZlLWNhcnQuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJ0VmFsaWRhdGlvblNlcnZpY2Uge1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVDYXJ0Q29tbWFuZDogQ29tbWFuZDx2b2lkLCBDYXJ0TW9kaWZpY2F0aW9uTGlzdD4gPVxuICAgIHRoaXMuY29tbWFuZC5jcmVhdGUoXG4gICAgICAoKSA9PlxuICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICB0aGlzLmFjdGl2ZUNhcnRTZXJ2aWNlLmdldEFjdGl2ZUNhcnRJZCgpLFxuICAgICAgICAgIHRoaXMudXNlcklkU2VydmljZS50YWtlVXNlcklkKCksXG4gICAgICAgICAgdGhpcy5hY3RpdmVDYXJ0U2VydmljZS5pc1N0YWJsZSgpLFxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgIGZpbHRlcigoW18sIF9fLCBsb2FkZWRdKSA9PiBsb2FkZWQpLFxuICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgc3dpdGNoTWFwKChbY2FydElkLCB1c2VySWRdKSA9PlxuICAgICAgICAgICAgdGhpcy5jYXJ0VmFsaWRhdGlvbkNvbm5lY3Rvci52YWxpZGF0ZShjYXJ0SWQsIHVzZXJJZClcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICB7XG4gICAgICAgIHN0cmF0ZWd5OiBDb21tYW5kU3RyYXRlZ3kuQ2FuY2VsUHJldmlvdXMsXG4gICAgICB9XG4gICAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY2FydFZhbGlkYXRpb25Db25uZWN0b3I6IENhcnRWYWxpZGF0aW9uQ29ubmVjdG9yLFxuICAgIHByb3RlY3RlZCBjb21tYW5kOiBDb21tYW5kU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdXNlcklkU2VydmljZTogVXNlcklkU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWN0aXZlQ2FydFNlcnZpY2U6IEFjdGl2ZUNhcnRTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJucyBjYXJ0IG1vZGlmaWNhdGlvbiBsaXN0LlxuICAgKlxuICAgKiBAcGFyYW0gY2FydElkXG4gICAqIEBwYXJhbSB1c2VySWRcbiAgICovXG4gIHZhbGlkYXRlQ2FydCgpOiBPYnNlcnZhYmxlPENhcnRNb2RpZmljYXRpb25MaXN0PiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVDYXJ0Q29tbWFuZC5leGVjdXRlKCk7XG4gIH1cbn1cbiJdfQ==