From b99290b1d5d736083513fb8f66e91f61bfe07e0b Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Mon, 23 Jan 2017 22:32:43 +0100 Subject: Client: lazy load admin area --- client/src/app/+admin/users/shared/index.ts | 1 + client/src/app/+admin/users/shared/user.service.ts | 49 ++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 client/src/app/+admin/users/shared/index.ts create mode 100644 client/src/app/+admin/users/shared/user.service.ts (limited to 'client/src/app/+admin/users/shared') diff --git a/client/src/app/+admin/users/shared/index.ts b/client/src/app/+admin/users/shared/index.ts new file mode 100644 index 000000000..e17ee5c7a --- /dev/null +++ b/client/src/app/+admin/users/shared/index.ts @@ -0,0 +1 @@ +export * from './user.service'; diff --git a/client/src/app/+admin/users/shared/user.service.ts b/client/src/app/+admin/users/shared/user.service.ts new file mode 100644 index 000000000..d9005b213 --- /dev/null +++ b/client/src/app/+admin/users/shared/user.service.ts @@ -0,0 +1,49 @@ +import { Injectable } from '@angular/core'; +import 'rxjs/add/operator/catch'; +import 'rxjs/add/operator/map'; + +import { AuthHttp, RestExtractor, ResultList, User } from '../../../shared'; + +@Injectable() +export class UserService { + // TODO: merge this constant with account + private static BASE_USERS_URL = '/api/v1/users/'; + + constructor( + private authHttp: AuthHttp, + private restExtractor: RestExtractor + ) {} + + addUser(username: string, password: string) { + const body = { + username, + password + }; + + return this.authHttp.post(UserService.BASE_USERS_URL, body) + .map(this.restExtractor.extractDataBool) + .catch(this.restExtractor.handleError); + } + + getUsers() { + return this.authHttp.get(UserService.BASE_USERS_URL) + .map(this.restExtractor.extractDataList) + .map(this.extractUsers) + .catch((res) => this.restExtractor.handleError(res)); + } + + removeUser(user: User) { + return this.authHttp.delete(UserService.BASE_USERS_URL + user.id); + } + + private extractUsers(result: ResultList) { + const usersJson = result.data; + const totalUsers = result.total; + const users = []; + for (const userJson of usersJson) { + users.push(new User(userJson)); + } + + return { users, totalUsers }; + } +} -- cgit v1.2.3