-
Notifications
You must be signed in to change notification settings - Fork 5
/
review.ts
31 lines (27 loc) · 1.21 KB
/
review.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import { ReviewAnime, ReviewManga } from "../resource/review";
import { translateObject } from "../utils";
import { BaseManager } from "./base";
export interface ReviewSearchFilter {
preliminary: boolean
spoiler: boolean
}
export class ReviewManager extends BaseManager {
public async getAnimeReviews (filter?: Partial<ReviewSearchFilter>, offset: number = 0, maxCount: number = 50): Promise<Array<ReviewAnime>> {
const rawData = await this.requestPaginated(`reviews/anime`, offset, maxCount, translateObject(filter, (key, value) => {
switch (key) {
case 'spoiler':
case 'preliminary': return value ? [key, 'true'] : undefined
}
}))
return rawData?.map((entry) => new ReviewAnime(this.client, entry)) ?? []
}
public async getMangaReviews (filter?: Partial<ReviewSearchFilter>, offset: number = 0, maxCount: number = 50): Promise<Array<ReviewManga>> {
const rawData = await this.requestPaginated(`reviews/manga`, offset, maxCount, translateObject(filter, (key, value) => {
switch (key) {
case 'spoiler':
case 'preliminary': return value ? [key, 'true'] : undefined
}
}))
return rawData?.map((entry) => new ReviewManga(this.client, entry)) ?? []
}
}