compiler/endpoints/series.ts
Florian Bouillon 6e517efd0f
Updated Series/Sets fetchers to filter and sort
Signed-off-by: Avior <florian.bouillon@delta-wings.net>
2021-05-03 00:56:45 +02:00

33 lines
963 B
TypeScript

import { Serie as SerieSingle, SerieList } from '@tcgdex/sdk/interfaces'
import { Languages, Serie } from '../db/interfaces'
import { Endpoint } from '../interfaces'
import { getSeries, serieToSerieSimple, serieToSerieSingle } from '../utils/serieUtil'
export default class implements Endpoint<SerieList, SerieSingle, {}, Array<Serie>> {
public constructor(
private lang: keyof Languages
) {}
public async index(common: Array<Serie>) {
return Promise.all(common.map((s) => serieToSerieSimple(s, this.lang)))
}
public async item(common: Array<Serie>) {
const items: Record<string, SerieSingle> = {}
for (let key = 0; key < common.length; key++) {
const val = common[key];
const gen = await serieToSerieSingle(val, this.lang)
const name = val.name[this.lang]
if (name && val.id !== name.toLowerCase()) {
items[name] = gen
}
items[val.id] = gen
}
return items
}
public async common() {
return getSeries(this.lang)
}
}