Skip to content
Snippets Groups Projects
api-resource.service.ts 1.17 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { Resource } from '@ngxp/rest';
    
    import { Observable } from 'rxjs';
    import {
      ApiSingleResourceStateService,
      SingleResourceStateService,
      StateService,
    } from '../ngrx/state.service';
    
    import { ResourceServiceConfig } from './resource.model';
    import { ResourceRepository } from './resource.repository';
    import { ResourceService } from './resource.service';
    
    import { StateResource } from './resource.util';
    
    
    export class ApiResourceService<B extends Resource, T extends Resource> extends ResourceService<
      B,
      T
    > {
    
      protected apiResourceStateService: ApiSingleResourceStateService<B, T>;
    
    
      constructor(
        protected config: ResourceServiceConfig<B>,
    
        protected stateService: StateService,
    
        protected repository: ResourceRepository,
      ) {
    
        super(config, stateService);
      }
    
    
      protected initStateService(): void {
        this.apiResourceStateService = this.stateService.createApiSingleResourceService<B, T>(
          this.config,
    
      protected getResourceStateService(): SingleResourceStateService<B, T> {
        return this.apiResourceStateService;
    
      public save(toSave: unknown): Observable<StateResource<T>> {
        return this.apiResourceStateService.save(toSave);