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 static BASE_VIDEO_URL = '/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(VideoService.BASE_VIDEO_URL, { search: params }) .map(res => res.json()) .map(this.extractVideos) .catch(this.handleError); } getVideo(id: string) { return this.http.get(VideoService.BASE_VIDEO_URL + id) .map(res =>