import { Injectable } from '@angular/core'; import { Http, Response } from '@angular/http'; import 'rxjs/add/operator/map'; @Injectable() export class SadeeService { //private username = 'admin'; //private password = 'admin'; private http: Http; private loginUrl = '/login'; private changePasswordUrl = '/profile'; private checkDBUrl = '/isDbEmpty'; private signupUrl = '/register'; private logoutUrl = '/logout'; private updateUrl = '/update-caee'; private loggedUser; private loggedToken; constructor(http: Http) { this.http = http; } checkLogin(username, password, callback){ const loginData = {username: username, password: password}; this.http.post(this.loginUrl, loginData) .map( (response : Response) =>{ return response; } ) .subscribe( (data) => { callback(data.ok); // its bad to use the same function in case of success and failure const body = data.json(); this.loggedUser = body.username; this.loggedToken = body.token; }, (data) => { callback(data.ok); // its bad to use the same function in case of success and failure } ); } changePassword(oldPassword, newPassword){ const passwordData = {oldPassword: oldPassword, newPassword: newPassword, token: this.loggedToken, username: this.loggedUser}; this.http.patch(this.changePasswordUrl, passwordData) .map( (response : Response) =>{ return response; } ) .subscribe( (data) => { window.confirm('Senha alterada com sucesso!'); }, (data) => { window.alert('Senha atual não correspondente!'); } ); } signup(username, password, confirmation, callback){ const registerData = {username: username, password:password, confirmation:confirmation}; this.http.post(this.signupUrl, registerData) .map( (response : Response) =>{ return response; } ) .subscribe( (data) => { callback(data.ok); }, (data) =>{ callback(data.ok); } ); } logout(callback){ const logoutData = {token: this.loggedToken, username: this.loggedUser}; this.http.post(this.logoutUrl, logoutData) .map( (response : Response) =>{ return response; } ) .subscribe( (data) => { callback(); }, (data) =>{ } ); } checkDB(callback){ let result = false; this.http.get(this.checkDBUrl) .map( (response : Response) =>{ return response; }) .subscribe( (data) => { if (!data.json().isEmpty){ callback(); } } ); return result; } updateCAEE(loginData, callback, errHandler){ this.http.post(this.updateUrl, loginData) .map( (response : Response) =>{ return response; } ) .subscribe( (data) => { callback(); }, (data) =>{ errHandler(); } ); } }