import { StringEndpointList, StringEndpoint } from '@tcgdex/sdk/interfaces' import { Card, Languages } from '../db/interfaces' import { Endpoint } from '../interfaces' import { cardToCardSimple, getCards } from '../utils/cardUtil' export default class implements Endpoint>> { public constructor( private lang: keyof Languages ) {} public async index(common: Record>) { return Object.keys(common) } public async item(common: Record>) { const items: Record = {} for (const key of Object.keys(common)) { const val = common[key] items[key] = { name: key, cards: await Promise.all(val.map(([id, card]) => cardToCardSimple(id, card, this.lang))) } } return items } public async common() { return (await getCards(this.lang)).reduce((p, c) => { const retreat = c[1].retreat if (!retreat) return p if (!p[retreat]) { p[retreat] = [] } p[retreat].push(c) return p }, {} as Record>) } }