import { Injectable } from '@angular/core' import { Http, Headers, RequestOptions } from '@angular/http' import { Observable } from 'rxjs/Observable' import 'rxjs/add/operator/catch' import 'rxjs/add/operator/map' import { Search } from '../../shared' import { SortField } from './sort-field.type' import { AuthService } from '../../core' import { AuthHttp, RestExtractor, RestPagination, RestService, ResultList, UserService } from '../../shared' import { Video } from './video.model' import { UserVideoRate, VideoRateType, VideoUpdate, VideoAbuseCreate, UserVideoRateUpdate } from '../../../../../shared' @Injectable() export class VideoService { private static BASE_VIDEO_URL = API_URL + '/api/v1/videos/' videoCategories: Array<{ id: number, label: string }> = [] videoLicences: Array<{ id: number, label: string }> = [] videoLanguages: Array<{ id: number, label: string }> = [] constructor ( private authService: AuthService, private authHttp: AuthHttp, private http: Http, private restExtractor: RestExtractor, private restService: RestService ) {} loadVideoCategories () { return this.loadVideoAttributeEnum('categories', this.videoCategories) } loadVideoLicences () { return this.loadVideoAttributeEnum('licences', this.videoLicences) } loadVideoLanguages () { return this.loadVideoAttributeEnum('languages', this.videoLanguages) } getVideo (id: string): Observable