@spartacus/core
Version:
Spartacus - the core framework
54 lines • 6.24 kB
JavaScript
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=