import { Injectable } from '@angular/core'; import { Http, Headers } from “@angular/http”; import { Observable } from “rxjs/Observable”; import {environment} from “../../../environments/environment”;

@Injectable() export class AuthorizationService {

private tokenKey = 'teneoJWT';

constructor(private http: Http) { }

authenticate(user: string, password: string): Observable<{ok: boolean, message?: string, detail?: string}> {
  this.logout();
  let headers = new Headers();
  headers.set('Accept', 'application/json');
  headers.set('Content-Type', 'application/json');
  return this.http
    .post(environment.urlAuth, {name: user, password: password}, {headers: headers})
    .map(
      (res) => {
        console.log(`Reply: ${res}`);
        if (!res.ok) {
          return {ok: false, message: res.statusText, detail: res.json().error};
        }
        localStorage.setItem(this.tokenKey, res.json().message);
        return {ok: true, message: res.json().message};
      });
}

isAuthenticated?() : boolean {
  if (localStorage.getItem(this.tokenKey)) {
    return true;
  }
  return false;
}

logout() {
  localStorage.removeItem(this.tokenKey);
}

currentUser(): string {
  return 'Administrator';
}

}