@hmcts/media-viewer
Version:
51 lines • 11 kB
JavaScript
import { Injectable } from '@angular/core';
import { createEffect, ofType } from '@ngrx/effects';
import { catchError, concatMap, exhaustMap, map, switchMap } from 'rxjs/operators';
import { of } from 'rxjs';
import * as annotationsActions from '../actions/annotation.actions';
import * as i0 from "@angular/core";
import * as i1 from "@ngrx/effects";
import * as i2 from "../../annotations/services/annotation-api/annotation-api.service";
export class AnnotationEffects {
constructor(actions$, annotationApiService) {
this.actions$ = actions$;
this.annotationApiService = annotationApiService;
this.loadAnnotation$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.LOAD_ANNOTATION_SET), map((action) => action.payload), switchMap((documentId) => {
return this.annotationApiService.getAnnotationSet(documentId).pipe(map(res => {
if (res.status === 204) {
return new annotationsActions.LoadAnnotationSetFail(res);
}
return new annotationsActions.LoadAnnotationSetSucess(res);
}), catchError(error => {
return of(new annotationsActions.LoadAnnotationSetFail(error));
}));
})));
this.postAnnotation$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.SAVE_ANNOTATION), concatMap((action) => {
return this.annotationApiService.postAnnotation(action.payload).pipe(map(annotations => {
return new annotationsActions.SaveAnnotationSuccess(annotations);
}), catchError(error => {
return of(new annotationsActions.LoadAnnotationSetFail(error));
}));
})));
this.deleteAnnotation$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.DELETE_ANNOTATION), map((action) => action.payload), exhaustMap((annotation) => {
return this.annotationApiService.deleteAnnotation(annotation).pipe(map(result => {
return new annotationsActions.DeleteAnnotationSuccess(annotation);
}), catchError(error => {
return of(new annotationsActions.DeleteAnnotationFail(error));
}));
})));
this.saveAnnotationSet$ = createEffect(() => this.actions$.pipe(ofType(annotationsActions.SAVE_ANNOTATION_SET), map((action) => action.payload), switchMap((annotationSet) => {
return this.annotationApiService.postAnnotationSet(annotationSet).pipe(map(res => {
return new annotationsActions.SaveAnnotationSetSuccess(res);
}), catchError(error => {
return of(new annotationsActions.SaveAnnotationSetFail(error));
}));
})));
}
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationEffects, deps: [{ token: i1.Actions }, { token: i2.AnnotationApiService }], target: i0.ɵɵFactoryTarget.Injectable }); }
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationEffects }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AnnotationEffects, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.Actions }, { type: i2.AnnotationApiService }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGlvbi5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9hbm5vdGF0aW9uLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQVcsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUIsT0FBTyxLQUFLLGtCQUFrQixNQUFNLCtCQUErQixDQUFDOzs7O0FBR3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsWUFDVSxRQUFpQixFQUNqQixvQkFBMEM7UUFEMUMsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBR3BELG9CQUFlLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDbEIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLEVBQzlDLEdBQUcsQ0FBQyxDQUFDLE1BQTRDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFDckUsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUNoRSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO29C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QUNSLENBQUMsQ0FBQyxDQUFDLENBQ0osQ0FBQztJQTlERSxDQUFDO2tJQUpNLGlCQUFpQjtzSUFBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbmNhdE1hcCwgZXhoYXVzdE1hcCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQW5ub3RhdGlvbkFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9hbm5vdGF0aW9ucy9zZXJ2aWNlcy9hbm5vdGF0aW9uLWFwaS9hbm5vdGF0aW9uLWFwaS5zZXJ2aWNlJztcbmltcG9ydCAqIGFzIGFubm90YXRpb25zQWN0aW9ucyBmcm9tICcuLi9hY3Rpb25zL2Fubm90YXRpb24uYWN0aW9ucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBbm5vdGF0aW9uRWZmZWN0cyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBhbm5vdGF0aW9uQXBpU2VydmljZTogQW5ub3RhdGlvbkFwaVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbG9hZEFubm90YXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShhbm5vdGF0aW9uc0FjdGlvbnMuTE9BRF9BTk5PVEFUSU9OX1NFVCksXG4gICAgbWFwKChhY3Rpb246IGFubm90YXRpb25zQWN0aW9ucy5Mb2FkQW5ub3RhdGlvblNldCkgPT4gYWN0aW9uLnBheWxvYWQpLFxuICAgIHN3aXRjaE1hcCgoZG9jdW1lbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYW5ub3RhdGlvbkFwaVNlcnZpY2UuZ2V0QW5ub3RhdGlvblNldChkb2N1bWVudElkKS5waXBlKFxuICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzLnN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IGFubm90YXRpb25zQWN0aW9ucy5Mb2FkQW5ub3RhdGlvblNldEZhaWwocmVzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBhbm5vdGF0aW9uc0FjdGlvbnMuTG9hZEFubm90YXRpb25TZXRTdWNlc3MocmVzKTtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIHJldHVybiBvZihuZXcgYW5ub3RhdGlvbnNBY3Rpb25zLkxvYWRBbm5vdGF0aW9uU2V0RmFpbChlcnJvcikpO1xuICAgICAgICB9KSk7XG4gICAgfSkpXG4gICk7XG5cbiAgcG9zdEFubm90YXRpb24kID0gY3JlYXRlRWZmZWN0KCgpID0+XG4gICAgdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShhbm5vdGF0aW9uc0FjdGlvbnMuU0FWRV9BTk5PVEFUSU9OKSxcbiAgICBjb25jYXRNYXAoKGFjdGlvbjogYW5ub3RhdGlvbnNBY3Rpb25zLlNhdmVBbm5vdGF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5hbm5vdGF0aW9uQXBpU2VydmljZS5wb3N0QW5ub3RhdGlvbihhY3Rpb24ucGF5bG9hZCkucGlwZShcbiAgICAgICAgbWFwKGFubm90YXRpb25zID0+IHtcbiAgICAgICAgICByZXR1cm4gbmV3IGFubm90YXRpb25zQWN0aW9ucy5TYXZlQW5ub3RhdGlvblN1Y2Nlc3MoYW5ub3RhdGlvbnMpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBhbm5vdGF0aW9uc0FjdGlvbnMuTG9hZEFubm90YXRpb25TZXRGYWlsKGVycm9yKSk7XG4gICAgICAgIH0pKTtcbiAgICB9KSlcbiAgKTtcblxuICBkZWxldGVBbm5vdGF0aW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoYW5ub3RhdGlvbnNBY3Rpb25zLkRFTEVURV9BTk5PVEFUSU9OKSxcbiAgICBtYXAoKGFjdGlvbjogYW5ub3RhdGlvbnNBY3Rpb25zLkRlbGV0ZUFubm90YXRpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICBleGhhdXN0TWFwKChhbm5vdGF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5hbm5vdGF0aW9uQXBpU2VydmljZS5kZWxldGVBbm5vdGF0aW9uKGFubm90YXRpb24pLnBpcGUoXG4gICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgYW5ub3RhdGlvbnNBY3Rpb25zLkRlbGV0ZUFubm90YXRpb25TdWNjZXNzKGFubm90YXRpb24pO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBhbm5vdGF0aW9uc0FjdGlvbnMuRGVsZXRlQW5ub3RhdGlvbkZhaWwoZXJyb3IpKTtcbiAgICAgICAgfSkpO1xuICAgIH0pKVxuICApO1xuXG4gIHNhdmVBbm5vdGF0aW9uU2V0JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PlxuICAgIHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoYW5ub3RhdGlvbnNBY3Rpb25zLlNBVkVfQU5OT1RBVElPTl9TRVQpLFxuICAgIG1hcCgoYWN0aW9uOiBhbm5vdGF0aW9uc0FjdGlvbnMuU2F2ZUFubm90YXRpb25TZXQpID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICBzd2l0Y2hNYXAoKGFubm90YXRpb25TZXQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmFubm90YXRpb25BcGlTZXJ2aWNlLnBvc3RBbm5vdGF0aW9uU2V0KGFubm90YXRpb25TZXQpLnBpcGUoXG4gICAgICAgIG1hcChyZXMgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgYW5ub3RhdGlvbnNBY3Rpb25zLlNhdmVBbm5vdGF0aW9uU2V0U3VjY2VzcyhyZXMpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBhbm5vdGF0aW9uc0FjdGlvbnMuU2F2ZUFubm90YXRpb25TZXRGYWlsKGVycm9yKSk7XG4gICAgICAgIH0pKTtcbiAgICB9KSlcbiAgKTtcbn1cbiJdfQ==