ngrx-model
Version:
Model classes for integrating ngrx store with a REST API
31 lines (24 loc) • 808 B
text/typescript
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));
}
}