UNPKG

ngrx-model

Version:

Model classes for integrating ngrx store with a REST API

31 lines (24 loc) 808 B
import { Observable } from 'rxjs'; import { RequestService } from '../request/request.service'; import { BaseModel, IBaseModelConfig } from './baseModel'; export interface ISingletonModelConfig<T> extends IBaseModelConfig<T> { } export class SingletonModel<T> extends BaseModel<T> { constructor(config: ISingletonModelConfig<T>, requestService: RequestService) { super(config, requestService); } update(newModel: T): Observable<T> { const request = this.requestService.update({ domainObject: newModel, endpoint: this.url, }); request.subscribe(model => this.dataStream$.next(model)); return request; } init(): void { super.init(); this.requestService.getItem<T>({ endpoint: this.url, }).subscribe(model => this.dataStream$.next(model)); } }