blob: 96492e32f38e4de1a5729f743478189c4edb7bbc [file] [log] [blame]
Matteo Scandolo43ffb672016-12-02 14:49:58 -08001/// <reference path="../../../../typings/index.d.ts"/>
2import {Component} from '@angular/core';
3import {Router} from '@angular/router';
4import {IAuthRequest, IAuthResponse} from '../../interfaces/auth.interface';
5import {StyleConfig} from '../../config/style.config';
6import {AuthService} from '../../services/rest/auth.service';
7
Matteo Scandolo43ffb672016-12-02 14:49:58 -08008export class Auth {
9 constructor(
Matteo Scandolo40f8fa92016-12-07 09:21:35 -080010 public username: string,
11 public password: string
12 ) {
Matteo Scandolo43ffb672016-12-02 14:49:58 -080013 }
14}
15
16@Component({
17 selector: 'xos-login',
18 template: require('./login.html'),
19 providers: [AuthService],
20})
21export class LoginComponent {
Matteo Scandolo40f8fa92016-12-07 09:21:35 -080022 public auth: IAuthRequest;
Matteo Scandolo43ffb672016-12-02 14:49:58 -080023 public brandName;
Matteo Scandolo40f8fa92016-12-07 09:21:35 -080024 constructor(private AuthService: AuthService, private router: Router) {
Matteo Scandolo43ffb672016-12-02 14:49:58 -080025 this.auth = new Auth('', '');
26 this.brandName = StyleConfig.projectName;
27 }
28
Matteo Scandolo40f8fa92016-12-07 09:21:35 -080029 onSubmit(auth: IAuthRequest) {
Matteo Scandolo43ffb672016-12-02 14:49:58 -080030 this.AuthService.login(auth)
31 .subscribe(
Matteo Scandolo40f8fa92016-12-07 09:21:35 -080032 (user: IAuthResponse) => {
Matteo Scandolo43ffb672016-12-02 14:49:58 -080033 this.router.navigate(['/']);
34 }
Matteo Scandolo40f8fa92016-12-07 09:21:35 -080035 );
Matteo Scandolo43ffb672016-12-02 14:49:58 -080036 }
37}
38