UNPKG

@spartacus/core

Version:

Spartacus - the core framework

54 lines 6.24 kB
import { Injectable } from '@angular/core'; import { filter, map, pairwise } from 'rxjs/operators'; import { createFrom } from '../../../util/create-from'; import { AuthActions } from '../store/actions/index'; import { LoginEvent, LogoutEvent } from './user-auth.events'; import * as i0 from "@angular/core"; import * as i1 from "../../../state/event/index"; import * as i2 from "../../../event/event.service"; import * as i3 from "../facade/auth.service"; export class UserAuthEventBuilder { constructor(stateEventService, eventService, authService) { this.stateEventService = stateEventService; this.eventService = eventService; this.authService = authService; this.register(); } /** * Registers user auth events */ register() { this.registerLoginEvent(); this.registerLogoutEvent(); } /** * Register a login event */ registerLoginEvent() { this.stateEventService.register({ action: AuthActions.LOGIN, event: LoginEvent, }); } /** * Register a logout event */ registerLogoutEvent() { this.eventService.register(LogoutEvent, this.buildLogoutEvent()); } /** * Returns logout event stream */ buildLogoutEvent() { return this.authService.isUserLoggedIn().pipe(pairwise(), filter(([prev, curr]) => prev && !curr), map(() => createFrom(LogoutEvent, {}))); } } UserAuthEventBuilder.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: UserAuthEventBuilder, deps: [{ token: i1.StateEventService }, { token: i2.EventService }, { token: i3.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); UserAuthEventBuilder.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: UserAuthEventBuilder, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.5", ngImport: i0, type: UserAuthEventBuilder, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }], ctorParameters: function () { return [{ type: i1.StateEventService }, { type: i2.EventService }, { type: i3.AuthService }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hdXRoLWV2ZW50LmJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9hdXRoL3VzZXItYXV0aC9ldmVudHMvdXNlci1hdXRoLWV2ZW50LmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7O0FBSzdELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDWSxpQkFBb0MsRUFDcEMsWUFBMEIsRUFDMUIsV0FBd0I7UUFGeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUVsQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ08sUUFBUTtRQUNoQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxrQkFBa0I7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztZQUM5QixNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUs7WUFDekIsS0FBSyxFQUFFLFVBQVU7U0FDbEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ08sbUJBQW1CO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNPLGdCQUFnQjtRQUN4QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLENBQUMsSUFBSSxDQUMzQyxRQUFRLEVBQUUsRUFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ3ZDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ3ZDLENBQUM7SUFDSixDQUFDOztpSEEzQ1Usb0JBQW9CO3FIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHBhaXJ3aXNlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZXZlbnQvZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0ZUV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3N0YXRlL2V2ZW50L2luZGV4JztcbmltcG9ydCB7IGNyZWF0ZUZyb20gfSBmcm9tICcuLi8uLi8uLi91dGlsL2NyZWF0ZS1mcm9tJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vZmFjYWRlL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2FjdGlvbnMvaW5kZXgnO1xuaW1wb3J0IHsgTG9naW5FdmVudCwgTG9nb3V0RXZlbnQgfSBmcm9tICcuL3VzZXItYXV0aC5ldmVudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVXNlckF1dGhFdmVudEJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RhdGVFdmVudFNlcnZpY2U6IFN0YXRlRXZlbnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBldmVudFNlcnZpY2U6IEV2ZW50U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVnaXN0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdXNlciBhdXRoIGV2ZW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyKCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJMb2dpbkV2ZW50KCk7XG4gICAgdGhpcy5yZWdpc3RlckxvZ291dEV2ZW50KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYSBsb2dpbiBldmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyTG9naW5FdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlRXZlbnRTZXJ2aWNlLnJlZ2lzdGVyKHtcbiAgICAgIGFjdGlvbjogQXV0aEFjdGlvbnMuTE9HSU4sXG4gICAgICBldmVudDogTG9naW5FdmVudCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWdpc3RlciBhIGxvZ291dCBldmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyTG9nb3V0RXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudFNlcnZpY2UucmVnaXN0ZXIoTG9nb3V0RXZlbnQsIHRoaXMuYnVpbGRMb2dvdXRFdmVudCgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGxvZ291dCBldmVudCBzdHJlYW1cbiAgICovXG4gIHByb3RlY3RlZCBidWlsZExvZ291dEV2ZW50KCk6IE9ic2VydmFibGU8TG9nb3V0RXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoU2VydmljZS5pc1VzZXJMb2dnZWRJbigpLnBpcGUoXG4gICAgICBwYWlyd2lzZSgpLFxuICAgICAgZmlsdGVyKChbcHJldiwgY3Vycl0pID0+IHByZXYgJiYgIWN1cnIpLFxuICAgICAgbWFwKCgpID0+IGNyZWF0ZUZyb20oTG9nb3V0RXZlbnQsIHt9KSlcbiAgICApO1xuICB9XG59XG4iXX0=