member_webapp/@overflow/meta/store/entity/meta-probe-package/meta-probe-package.effect.ts
crusader 8f6bae5586 ing
2018-05-29 19:49:29 +09:00

41 lines
1.1 KiB
TypeScript

import { Injectable } from '@angular/core';
import { Effect, Actions, ofType } from '@ngrx/effects';
import { of } from 'rxjs';
import { catchError, exhaustMap, map, tap } from 'rxjs/operators';
import { MetaProbePackage, MetaProbeOs } from '@overflow/commons-typescript/model/meta';
import { MetaProbePackageService } from '../../../service/meta-probe-package.service';
import {
ReadAllByOs,
ReadAllByOsSuccess,
ReadAllByOsFailure,
ActionType,
} from './meta-probe-package.action';
@Injectable()
export class Effects {
constructor(
private actions$: Actions,
private metaProbePackageService: MetaProbePackageService,
) { }
@Effect()
readAllByOs$ = this.actions$.pipe(
ofType(ActionType.ReadAllByOs),
map((action: ReadAllByOs) => action.payload),
exhaustMap((metaProbeOs: MetaProbeOs) =>
this.metaProbePackageService
.readAllByOs(metaProbeOs)
.pipe(
map((result: MetaProbePackage[]) => {
return new ReadAllByOsSuccess(result);
}),
catchError(error => of(new ReadAllByOsFailure(error)))
)
)
);
}