import { Injectable } from '@angular/core'; import { Http, Response, URLSearchParams } from '@angular/http'; import { Observable } from 'rxjs/Rx'; import { Pagination } from './pagination.model'; import { Search } from '../../shared/index'; import { SortField } from './sort-field.type'; import { AuthService } from '../../users/index'; import { Video } from './video.model'; @Injectable() export class VideoService { private _baseVideoUrl = '/api/v1/videos/'; constructor (private http: Http, private _authService: AuthService) {} getVideos(pagination: Pagination, sort: SortField) { const params = this.createPaginationParams(pagination); if (sort) params.set('sort', sort); return this.http.get(this._baseVideoUrl, { search: params }) .map(res => res.json()) .map(this.extractVideos) .catch(this.handleError); } getVideo(id: string) { return this.http.get(this._baseVideoUrl + id) .map(res =>