diff --git a/src/services/cardService.ts b/src/services/cardService.ts index 11a6e7f..99e94d7 100644 --- a/src/services/cardService.ts +++ b/src/services/cardService.ts @@ -6,6 +6,25 @@ import { Subtype } from '../enums/subtype'; import { Rarity } from '../enums/rarity'; import { Client } from '../client'; +async function paginateAllCards(pageNumber: number, params?: Parameter): Promise { + let currentPage = pageNumber; + const client: Client = Client.getInstance(); + const response: Card[] = await client.get('cards', { ...params, pageSize: 250, page: currentPage }); + + if (response.length === 0) { + return response; + } else { + currentPage++; + return response.concat(await paginateAllCards(currentPage)); + } +} + +export async function getAllCards(params?: Parameter): Promise { + const startingPage = 1; + const response: Card[] = await paginateAllCards(startingPage, params); + return response; +} + export async function findCardByID(id: string): Promise { const client: Client = Client.getInstance(); const response: Card = await client.get('cards', id); @@ -18,13 +37,6 @@ export async function findCardsByQueries(params: Parameter): Promise { return response; } -export async function getAllCards(): Promise { - const params: Parameter = { pageSize: 250 }; - const client: Client = Client.getInstance(); - const response: Card[] = await client.get('cards', params); - return response; -} - export async function getTypes(): Promise { const client: Client = Client.getInstance();