aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp
diff options
context:
space:
mode:
Diffstat (limited to 'Timeline/ClientApp')
-rw-r--r--Timeline/ClientApp/src/app/todo/todo-service/http-entities.ts11
-rw-r--r--Timeline/ClientApp/src/app/todo/todo-service/todo.service.spec.ts8
-rw-r--r--Timeline/ClientApp/src/app/todo/todo-service/todo.service.ts14
-rw-r--r--Timeline/ClientApp/src/app/user/internal-user-service/http-entities.ts3
-rw-r--r--Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts13
-rw-r--r--Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts9
6 files changed, 33 insertions, 25 deletions
diff --git a/Timeline/ClientApp/src/app/todo/todo-service/http-entities.ts b/Timeline/ClientApp/src/app/todo/todo-service/http-entities.ts
new file mode 100644
index 00000000..3971617c
--- /dev/null
+++ b/Timeline/ClientApp/src/app/todo/todo-service/http-entities.ts
@@ -0,0 +1,11 @@
+export const githubBaseUrl = 'https://api.github.com/repos/crupest/Timeline';
+
+export interface IssueResponseItem {
+ number: number;
+ title: string;
+ state: string;
+ html_url: string;
+ pull_request?: any;
+}
+
+export type IssueResponse = IssueResponseItem[];
diff --git a/Timeline/ClientApp/src/app/todo/todo-service/todo.service.spec.ts b/Timeline/ClientApp/src/app/todo/todo-service/todo.service.spec.ts
index b0b35f7b..679dc8b7 100644
--- a/Timeline/ClientApp/src/app/todo/todo-service/todo.service.spec.ts
+++ b/Timeline/ClientApp/src/app/todo/todo-service/todo.service.spec.ts
@@ -3,7 +3,8 @@ import { HttpClientTestingModule, HttpTestingController } from '@angular/common/
import { toArray } from 'rxjs/operators';
import { TodoItem } from '../todo-item';
-import { TodoService, IssueResponse } from './todo.service';
+import { TodoService } from './todo.service';
+import { IssueResponse, githubBaseUrl } from './http-entities';
describe('TodoService', () => {
@@ -19,8 +20,6 @@ describe('TodoService', () => {
it('should work well', () => {
const service: TodoService = TestBed.get(TodoService);
- const baseUrl = service.baseUrl;
-
const mockIssueList: IssueResponse = [{
number: 1,
title: 'Issue title 1',
@@ -47,7 +46,8 @@ describe('TodoService', () => {
const httpController: HttpTestingController = TestBed.get(HttpTestingController);
- httpController.expectOne(request => request.url === baseUrl + '/issues' && request.params.get('state') === 'all').flush(mockIssueList);
+ httpController.expectOne(request => request.url === githubBaseUrl + '/issues' &&
+ request.params.get('state') === 'all').flush(mockIssueList);
httpController.verify();
});
diff --git a/Timeline/ClientApp/src/app/todo/todo-service/todo.service.ts b/Timeline/ClientApp/src/app/todo/todo-service/todo.service.ts
index ed1f2cbe..df63636d 100644
--- a/Timeline/ClientApp/src/app/todo/todo-service/todo.service.ts
+++ b/Timeline/ClientApp/src/app/todo/todo-service/todo.service.ts
@@ -3,29 +3,19 @@ import { HttpClient } from '@angular/common/http';
import { Observable, from } from 'rxjs';
import { switchMap, map, filter } from 'rxjs/operators';
+import { IssueResponse, githubBaseUrl } from './http-entities';
import { TodoItem } from '../todo-item';
-export interface IssueResponseItem {
- number: number;
- title: string;
- state: string;
- html_url: string;
- pull_request?: any;
-}
-
-export type IssueResponse = IssueResponseItem[];
@Injectable({
providedIn: 'root'
})
export class TodoService {
- readonly baseUrl = 'https://api.github.com/repos/crupest/Timeline';
-
constructor(private client: HttpClient) { }
getWorkItemList(): Observable<TodoItem> {
- return this.client.get<IssueResponse>(`${this.baseUrl}/issues`, {
+ return this.client.get<IssueResponse>(`${githubBaseUrl}/issues`, {
params: {
state: 'all'
}
diff --git a/Timeline/ClientApp/src/app/user/internal-user-service/http-entities.ts b/Timeline/ClientApp/src/app/user/internal-user-service/http-entities.ts
index 1335b407..5664cf7c 100644
--- a/Timeline/ClientApp/src/app/user/internal-user-service/http-entities.ts
+++ b/Timeline/ClientApp/src/app/user/internal-user-service/http-entities.ts
@@ -1,5 +1,8 @@
import { UserCredentials, UserInfo } from '../entities';
+export const createTokenUrl = '/api/User/CreateToken';
+export const validateTokenUrl = '/api/User/ValidateToken';
+
export type CreateTokenRequest = UserCredentials;
export interface CreateTokenResponse {
diff --git a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts
index 8aadd873..4db28768 100644
--- a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts
+++ b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.spec.ts
@@ -4,12 +4,13 @@ import { HttpClientTestingModule, HttpTestingController } from '@angular/common/
import { Router } from '@angular/router';
import { UserInfo, UserCredentials } from '../entities';
-import { CreateTokenRequest, CreateTokenResponse, ValidateTokenRequest, ValidateTokenResponse } from './http-entities';
+import {
+ createTokenUrl, validateTokenUrl, CreateTokenRequest,
+ CreateTokenResponse, ValidateTokenRequest, ValidateTokenResponse
+} from './http-entities';
import { InternalUserService, UserLoginState } from './internal-user.service';
describe('InternalUserService', () => {
- const tokenCreateUrl = '/api/User/CreateToken';
-
const mockUserCredentials: UserCredentials = {
username: 'user',
password: 'user'
@@ -48,7 +49,7 @@ describe('InternalUserService', () => {
const httpController = TestBed.get(HttpTestingController) as HttpTestingController;
httpController.expectOne((request: HttpRequest<CreateTokenRequest>) =>
- request.url === tokenCreateUrl &&
+ request.url === createTokenUrl &&
request.body.username === 'user' &&
request.body.password === 'user').flush(<CreateTokenResponse>{
token: 'test-token',
@@ -72,7 +73,7 @@ describe('InternalUserService', () => {
const mockToken = 'mock-token';
const tokenValidateRequestMatcher = (req: HttpRequest<ValidateTokenRequest>) => {
- return req.url === '/api/User/ValidateToken' && req.body.token === mockToken;
+ return req.url === validateTokenUrl && req.body.token === mockToken;
};
beforeEach(() => {
@@ -81,7 +82,7 @@ describe('InternalUserService', () => {
service.tryLogin(mockUserCredentials).subscribe(); // subscribe to activate login
- httpController.expectOne(tokenCreateUrl).flush(<CreateTokenResponse>{
+ httpController.expectOne(createTokenUrl).flush(<CreateTokenResponse>{
token: mockToken,
userInfo: mockUserInfo
});
diff --git a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
index f6987d7d..91a67e5b 100644
--- a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
+++ b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
@@ -6,7 +6,10 @@ import { Observable, of, throwError, BehaviorSubject } from 'rxjs';
import { map, catchError, retry } from 'rxjs/operators';
import { AlreadyLoginError, BadCredentialsError, BadNetworkError, UnknownError } from './errors';
-import { CreateTokenRequest, CreateTokenResponse, ValidateTokenRequest, ValidateTokenResponse } from './http-entities';
+import {
+ createTokenUrl, validateTokenUrl, CreateTokenRequest,
+ CreateTokenResponse, ValidateTokenRequest, ValidateTokenResponse
+} from './http-entities';
import { UserCredentials, UserInfo } from '../entities';
@@ -46,7 +49,7 @@ export class InternalUserService {
return of(<UserLoginState>'nologin');
}
- return this.httpClient.post<ValidateTokenResponse>('/api/User/ValidateToken', <ValidateTokenRequest>{ token: this.token }).pipe(
+ return this.httpClient.post<ValidateTokenResponse>(validateTokenUrl, <ValidateTokenRequest>{ token: this.token }).pipe(
retry(3),
catchError(error => {
console.error('Failed to validate token.');
@@ -70,7 +73,7 @@ export class InternalUserService {
return throwError(new AlreadyLoginError());
}
- return this.httpClient.post<CreateTokenResponse>('/api/User/CreateToken', <CreateTokenRequest>credentials).pipe(
+ return this.httpClient.post<CreateTokenResponse>(createTokenUrl, <CreateTokenRequest>credentials).pipe(
catchError((error: HttpErrorResponse) => {
if (error.error instanceof ErrorEvent) {
console.error('An error occurred when login: ' + error.error.message);