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
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'))
|
|
}))
|
|
);
|
|
}
|
|
}
|