Skip to content
Snippets Groups Projects
effects.service.ts 943 B
Newer Older
  • Learn to ignore specific revisions
  • 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),
        });
      }