Newer
Older
import { Injectable } from '@angular/core';
import { Actions, EffectSources } from '@ngrx/effects';
import { ResourceRepository } from '../resource/resource.repository';
import { ApiSingleResourceActions, SingleResourceLoadActions } from './actions';
import { ApiResourceEffects, ResourceEffects } from './resource.effects';
@Injectable()
export class EffectService {
constructor(
private actions$: Actions,
private effectSources: EffectSources,
private repository: ResourceRepository,
) {}
public addSingleResourceEffects(resourceActions: SingleResourceLoadActions): void {
this.effectSources.addEffects({
...new ResourceEffects(this.actions$, this.repository, resourceActions),
});
}
public addApiSingleResourceEffects(resourceActions: ApiSingleResourceActions): void {
this.effectSources.addEffects({
...new ApiResourceEffects(this.actions$, this.repository, resourceActions),
});
}