+ .pipe(
+ map(this.restExtractor.extractDataBool),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ updateMyProfile (profile: UserUpdateMe) {
+ const url = UserService.BASE_USERS_URL + 'me'
+
+ return this.authHttp.put(url, profile)
+ .pipe(
+ map(this.restExtractor.extractDataBool),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ deleteMe () {
+ const url = UserService.BASE_USERS_URL + 'me'
+
+ return this.authHttp.delete(url)
+ .pipe(
+ map(this.restExtractor.extractDataBool),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ changeAvatar (avatarForm: FormData) {
+ const url = UserService.BASE_USERS_URL + 'me/avatar/pick'
+
+ return this.authHttp.post<{ avatar: Avatar }>(url, avatarForm)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))
+ }
+
+ signup (userCreate: UserCreate) {
+ return this.authHttp.post(UserService.BASE_USERS_URL + 'register', userCreate)
+ .pipe(
+ map(this.restExtractor.extractDataBool),
+ catchError(err => this.restExtractor.handleError(err))
+ )
+ }
+
+ getMyVideoQuotaUsed () {
+ const url = UserService.BASE_USERS_URL + '/me/video-quota-used'
+
+ return this.authHttp.get<UserVideoQuota>(url)
+ .pipe(catchError(err => this.restExtractor.handleError(err)))