diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 33542c4..eb508a2 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -15,6 +15,7 @@ import { EditAppareilComponent } from './edit-appareil/edit-appareil.component'; import { UserService } from './services/user.service'; import { UserListComponent } from './user-list/user-list.component'; import { NewUserComponent } from './new-user/new-user.component'; +import { HttpClientModule } from '@angular/common/http'; const appRoutes: Routes = [ { path: 'appareils', canActivate: [AuthGuard], component: AppareilViewComponent }, @@ -43,6 +44,7 @@ const appRoutes: Routes = [ imports: [ BrowserModule, FormsModule, + HttpClientModule, ReactiveFormsModule, RouterModule.forRoot(appRoutes) ], diff --git a/src/app/appareil-view/appareil-view.component.html b/src/app/appareil-view/appareil-view.component.html index 11dfa70..726d40b 100644 --- a/src/app/appareil-view/appareil-view.component.html +++ b/src/app/appareil-view/appareil-view.component.html @@ -14,6 +14,10 @@

Mes appareils

(click)="onAllumer()">Tout allumer + + diff --git a/src/app/appareil-view/appareil-view.component.ts b/src/app/appareil-view/appareil-view.component.ts index 838fb50..fa4aa6a 100644 --- a/src/app/appareil-view/appareil-view.component.ts +++ b/src/app/appareil-view/appareil-view.component.ts @@ -47,4 +47,12 @@ export class AppareilViewComponent implements OnInit, OnDestroy { ngOnDestroy() { this.appareilSubscription.unsubscribe(); } + + onSave() { + this.appareilService.saveAppareilsToServer(); + } + + onFetch() { + this.appareilService.getAppareilsFromServer(); + } } diff --git a/src/app/services/appareil.service.ts b/src/app/services/appareil.service.ts index 381058b..2147b5f 100644 --- a/src/app/services/appareil.service.ts +++ b/src/app/services/appareil.service.ts @@ -1,26 +1,15 @@ import { Subject } from 'rxjs/Subject'; +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +@Injectable() export class AppareilService { + constructor(private httpClient: HttpClient) { } + appareilsSubject = new Subject(); - private appareils = [ - { - id: 1, - name: 'Machine à laver', - status: 'éteint' - }, - { - id: 2, - name: 'Frigo', - status: 'allumé' - }, - { - id: 3, - name: 'Ordinateur', - status: 'éteint' - } - ]; + private appareils = []; emitAppareilSubject() { this.appareilsSubject.next(this.appareils.slice()); @@ -66,4 +55,31 @@ export class AppareilService { this.appareils.push(appareilObject); this.emitAppareilSubject(); } + + saveAppareilsToServer() { + this.httpClient + .put('https://angular-training-8da8c.firebaseio.com/appareils.json', this.appareils) + .subscribe( + () => { + console.log('Enregistrement terminé !'); + }, + (error) => { + console.log('Erreur ! : ' + error); + } + ); + } + + getAppareilsFromServer() { + this.httpClient + .get('https://angular-training-8da8c.firebaseio.com/appareils.json') + .subscribe( + (response) => { + this.appareils = response; + this.emitAppareilSubject(); + }, + (error) => { + console.log('Erreur ! : ' + error); + } + ); + } }