All files / src/app/user auth.service.ts

100% Statements 19/19
50% Branches 1/2
100% Functions 5/5
100% Lines 15/15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 281x 1x 1x     1x 1x     1x   1x 1x     1x     1x 1x 2x 1x 1x       1x  
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { select } from '@angular-redux/store';
 
import { IUser } from '../model/user.model';
import { UserActions } from './user.actions';
import { waitforFirstNotNull } from '../store/selector-helpers/selector-helpers';
 
@Injectable()
export class AuthService {
 
  @select(['user', 'users']) users$: Observable<IUser[]>;
  @select(['user', 'currentUser']) currentUser$: Observable<IUser>;
 
  constructor (
    private userActions: UserActions,
  ) {}
 
  loginUser(name: string, password: string) {
    waitforFirstNotNull(this.users$, (users: IUser[]) => {
      const userIndex = users.map(user => user.userName).indexOf(name);
      Eif (userIndex > -1) {
        this.userActions.setCurrentUser(users[userIndex]);
      }
    });
  }
}