]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/+admin/users/shared/user.service.ts
Better typescript typing for a better world
[github/Chocobozzz/PeerTube.git] / client / src / app / +admin / users / shared / user.service.ts
index d9005b213e510a75ce1aa8e886eef0006ae58baa..1c1cd575edf312d5cfb53c357424f3cf8b8c0d9e 100644 (file)
@@ -1,49 +1,30 @@
-import { Injectable } from '@angular/core';
-import 'rxjs/add/operator/catch';
-import 'rxjs/add/operator/map';
+import { Injectable } from '@angular/core'
+import 'rxjs/add/operator/catch'
+import 'rxjs/add/operator/map'
 
-import { AuthHttp, RestExtractor, ResultList, User } from '../../../shared';
+import { AuthHttp, RestExtractor, RestDataSource, User } from '../../../shared'
+import { UserCreate } from '../../../../../../shared'
 
 @Injectable()
 export class UserService {
-  // TODO: merge this constant with account
-  private static BASE_USERS_URL = '/api/v1/users/';
+  private static BASE_USERS_URL = API_URL + '/api/v1/users/'
 
-  constructor(
+  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)
+  addUser (userCreate: UserCreate) {
+    return this.authHttp.post(UserService.BASE_USERS_URL, userCreate)
                         .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));
+                        .catch(this.restExtractor.handleError)
   }
 
-  removeUser(user: User) {
-    return this.authHttp.delete(UserService.BASE_USERS_URL + user.id);
+  getDataSource () {
+    return new RestDataSource(this.authHttp, UserService.BASE_USERS_URL)
   }
 
-  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 };
+  removeUser (user: User) {
+    return this.authHttp.delete(UserService.BASE_USERS_URL + user.id)
   }
 }