@kfijolek/boardgamegeekclient
Version:
TypeScript client to interact with BoardGameGeek public XML API
35 lines • 2.56 kB
JavaScript
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