UNPKG

@kfijolek/boardgamegeekclient

Version:

TypeScript client to interact with BoardGameGeek public XML API

35 lines 2.56 kB
import { BggThingClient, BggFamilyClient, BggForumlistClient, BggForumClient, BggThreadClient, BggUserClient, BggGuildClient, BggPlayClient, BggCollectionClient, BggSearchClient, BggHotClient } from "../client"; import { BggFamilyDtoParser, BggThingDtoParser, BggForumlistDtoParser, BggForumDtoParser, BggThreadDtoParser, BggUserDtoParser, BggGuildDtoParser, BggPlayDtoParser, BggCollectionDtoParser, BggSearchDtoParser, BggHotDtoParser } from "../dto"; import { TextFetcher } from "../fetcher"; import { RequestPaginator } from "../paginator"; import { GenericQueryBuilder } from "../query"; import { XmlResponseParser } from "../responseparser"; /** * @description Expose all clients to interact with Bgg api. * @class BggClient */ export class BggClient { constructor(apiKey) { const fetcher = new TextFetcher(apiKey); const responseParser = new XmlResponseParser(); const paginator = new RequestPaginator(); this.thing = new BggThingClient(new GenericQueryBuilder(), fetcher, responseParser, new BggThingDtoParser(), paginator); this.family = new BggFamilyClient(new GenericQueryBuilder(), fetcher, responseParser, new BggFamilyDtoParser(), paginator); this.forumlist = new BggForumlistClient(new GenericQueryBuilder(), fetcher, responseParser, new BggForumlistDtoParser(), paginator); this.forum = new BggForumClient(new GenericQueryBuilder(), fetcher, responseParser, new BggForumDtoParser()); this.thread = new BggThreadClient(new GenericQueryBuilder(), fetcher, responseParser, new BggThreadDtoParser()); this.user = new BggUserClient(new GenericQueryBuilder(), fetcher, responseParser, new BggUserDtoParser()); this.guild = new BggGuildClient(new GenericQueryBuilder(), fetcher, responseParser, new BggGuildDtoParser()); this.play = new BggPlayClient(new GenericQueryBuilder(), fetcher, responseParser, new BggPlayDtoParser()); this.collection = new BggCollectionClient(new GenericQueryBuilder(), fetcher, responseParser, new BggCollectionDtoParser()); this.search = new BggSearchClient(new GenericQueryBuilder(), fetcher, responseParser, new BggSearchDtoParser()); this.hot = new BggHotClient(new GenericQueryBuilder(), fetcher, responseParser, new BggHotDtoParser()); } static Create(options) { if (!BggClient.instance) { BggClient.instance = new BggClient(options.apiKey); } return BggClient.instance; } } //# sourceMappingURL=BggClient.js.map