Newer
Older
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);