///
import {Injectable} from 'angular2/core';
import {User} from "../../../common/entities/User";
import {Event} from "../../../common/event/Event";
import {UserService} from "./user.service";
import {LoginCredential} from "../../../common/entities/LoginCredential";
import {Message} from "../../../common/entities/Message";
import { Cookie } from 'ng2-cookies/ng2-cookies';
@Injectable()
export class AuthenticationService{
private _user:User = null;
public OnAuthenticated:Event;
constructor(private _userService: UserService){
this.OnAuthenticated = new Event();
//picking up session..
if(this.isAuthenticated() == false && Cookie.getCookie('pigallery2-session') != null){
this.getSessionUser();
}
}
private getSessionUser(){
this._userService.getSessionUser().then( (message:Message) =>{
console.log(message);
if(message.errors){
console.log(message.errors);
}else{
this._user = message.result;
this.OnAuthenticated.trigger(this._user);
}
});
}
public login(credential:LoginCredential){
this._userService.login(credential).then( (message:Message) =>{
console.log(message);
if(message.errors){
console.log(message.errors);
}else{
this._user = message.result;
this.OnAuthenticated.trigger(this._user);
}
});
}
public isAuthenticated():boolean{
return (this._user && this._user != null) ? true : false;
}
}