WIP: Extract interaction with store into service
[examples/angular-tour-of-heroes] / src / app / vorgang.service.ts
index 3d433e7..b68958b 100644 (file)
@@ -1,8 +1,10 @@
 import { Injectable } from '@angular/core';
 import { HttpClient, HttpHeaders } from '@angular/common/http';
 import { Observable, of, EMPTY } from 'rxjs';
-import { catchError, tap } from 'rxjs/operators';
+import { catchError, map, tap } from 'rxjs/operators';
+import { select, Store } from '@ngrx/store';
 import { Vorgang } from './vorgang';
+import { State } from './reducers/vorgang';
 
 
 @Injectable({
@@ -18,7 +20,9 @@ export class VorgangService {
     })
   };
 
-  constructor(private http: HttpClient) { }
+  constructor(
+    private http: HttpClient,
+    private store: Store<{ vorgang: State }>) { }
 
   /** POST: Einen neuen Vorgang erzeugen */
   create(vorgang: Vorgang): Observable<Vorgang> {
@@ -37,6 +41,10 @@ export class VorgangService {
     return this.gpsUrl + vbId + '/save';
   }
 
+  Observable<number> observe() {
+    return this.store.pipe(select('vorgang'), map(vorgang => vorgang.counter));
+  }
+
   /**
    * Handle Http operation that failed.
    * Let the app continue.