You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.8 KiB

import { Injectable } from '@angular/core';
import {
HttpClient,
HttpParams
} from '@angular/common/http';
import { Observable } from 'rxjs/Observable';
import { map } from 'rxjs/operators';
import { Video } from '../models/video';
import { Comment } from '../models/comment';
@Injectable()
export class CommentsService {
constructor(private http: HttpClient) { }
findVideos(
filter = '', sortBy = 'recorded_at', sortOrder = 'desc',
pageNumber = 0, pageSize = 20): Observable<any> {
return this.http.get('/twitch-logs/api/videos', {
observe: 'response',
params: new HttpParams()
.set('filter', filter)
.set('sort_by', sortBy)
.set('sort_order', sortOrder)
.set('page_number', pageNumber.toString())
.set('page_size', pageSize.toString())
}).pipe(
map((res: any) => ({
videos: <Video[]>res.body,
totalCount: parseInt(res.headers.get('X-Total-Count'))
}))
);
}
findComments(videoID,
filter = '', sortBy = 'offset', sortOrder = 'asc',
pageNumber = 0, pageSize = 20): Observable<any> {
return this.http.get('/twitch-logs/api/videos/' + videoID + '/comments', {
observe: 'response',
params: new HttpParams()
.set('filter', filter)
.set('sort_by', sortBy)
.set('sort_order', sortOrder)
.set('page_number', pageNumber.toString())
.set('page_size', pageSize.toString())
}).pipe(
map((res: any) => ({
comments: <Comment[]>res.body,
totalCount: parseInt(res.headers.get('X-Total-Count'))
}))
);
}
}