aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/user-service
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-03-09 01:42:38 +0800
committercrupest <crupest@outlook.com>2019-03-09 01:42:38 +0800
commitd6e7d702db4e600d2298376ba9310e985ee69079 (patch)
treeb8248d41f5bfccc82c5c110143c5504decf3e16d /Timeline/ClientApp/src/app/user/user-service
parent028af6f786ac2664d301614d57bbff053c3dc9c0 (diff)
downloadtimeline-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.ts13
-rw-r--r--Timeline/ClientApp/src/app/user/user-service/user.service.ts26
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);