diff options
author | crupest <crupest@outlook.com> | 2019-03-09 01:42:38 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-03-09 01:42:38 +0800 |
commit | d6e7d702db4e600d2298376ba9310e985ee69079 (patch) | |
tree | b8248d41f5bfccc82c5c110143c5504decf3e16d /Timeline/ClientApp/src/app/user/user-service | |
parent | 028af6f786ac2664d301614d57bbff053c3dc9c0 (diff) | |
download | timeline-d6e7d702db4e600d2298376ba9310e985ee69079.tar.gz timeline-d6e7d702db4e600d2298376ba9310e985ee69079.tar.bz2 timeline-d6e7d702db4e600d2298376ba9310e985ee69079.zip |
User named route in dialog.
Diffstat (limited to 'Timeline/ClientApp/src/app/user/user-service')
-rw-r--r-- | Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts | 13 | ||||
-rw-r--r-- | Timeline/ClientApp/src/app/user/user-service/user.service.ts | 26 |
2 files changed, 23 insertions, 16 deletions
diff --git a/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts b/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts index 0095f031..9effe000 100644 --- a/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts +++ b/Timeline/ClientApp/src/app/user/user-service/user.service.spec.ts @@ -2,15 +2,20 @@ import { TestBed } from '@angular/core/testing'; import { HttpRequest } from '@angular/common/http'; import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; -import { UserInfo } from '../user-info'; +import { UserInfo, UserCredentials } from '../entities'; import { - UserService, UserCredentials, CreateTokenResult, + UserService, CreateTokenResult, UserLoginState, TokenValidationRequest, TokenValidationResult } from './user.service'; describe('UserService', () => { const tokenCreateUrl = '/api/User/CreateToken'; + const mockUserCredentials: UserCredentials = { + username: 'user', + password: 'user' + }; + beforeEach(() => TestBed.configureTestingModule({ imports: [HttpClientTestingModule] })); @@ -35,7 +40,7 @@ describe('UserService', () => { roles: ['user', 'other'] }; - service.tryLogin('user', 'user').subscribe(result => { + service.tryLogin(mockUserCredentials).subscribe(result => { expect(result).toEqual(mockUserInfo); }); @@ -71,7 +76,7 @@ describe('UserService', () => { service = TestBed.get(UserService); httpController = TestBed.get(HttpTestingController); - service.tryLogin('user', 'user').subscribe(); // subscribe to activate login + service.tryLogin(mockUserCredentials).subscribe(); // subscribe to activate login httpController.expectOne(tokenCreateUrl).flush(<CreateTokenResult>{ token: mockToken, diff --git a/Timeline/ClientApp/src/app/user/user-service/user.service.ts b/Timeline/ClientApp/src/app/user/user-service/user.service.ts index 009e5292..e535537d 100644 --- a/Timeline/ClientApp/src/app/user/user-service/user.service.ts +++ b/Timeline/ClientApp/src/app/user/user-service/user.service.ts @@ -3,12 +3,8 @@ import { HttpClient, HttpErrorResponse } from '@angular/common/http'; import { Observable, of, throwError } from 'rxjs'; import { map, catchError, retry } from 'rxjs/operators'; -import { UserInfo } from '../user-info'; - -export interface UserCredentials { - username: string; - password: string; -} +import { UserCredentials, UserInfo } from '../entities'; +import { Router } from '@angular/router'; export interface CreateTokenResult { token: string; @@ -53,9 +49,17 @@ export class BadCredentialsException extends Error { export class UserService { private token: string; - private userInfo: UserInfo; + userInfo: UserInfo; - constructor(private httpClient: HttpClient) { } + constructor(private httpClient: HttpClient, private router: Router) { } + + userRouteNavigate(commands: any[]) { + this.router.navigate([{ + outlets: { + user: commands + } + }]); + } validateUserLoginState(): Observable<UserLoginState> { if (this.token === undefined || this.token === null) { @@ -86,14 +90,12 @@ export class UserService { ); } - tryLogin(username: string, password: string): Observable<UserInfo> { + tryLogin(credentials: UserCredentials): Observable<UserInfo> { if (this.token) { return throwError(new AlreadyLoginException()); } - return this.httpClient.post<CreateTokenResult>('/api/User/CreateToken', <UserCredentials>{ - username, password - }).pipe( + return this.httpClient.post<CreateTokenResult>('/api/User/CreateToken', credentials).pipe( catchError((error: HttpErrorResponse) => { if (error.error instanceof ErrorEvent) { console.error('An error occurred when login: ' + error.error.message); |