0.1.9 • Published 3 years ago

geekdo-sdk v0.1.9

Weekly downloads
37
License
MIT
Repository
github
Last release
3 years ago

Geekdo SDK

npm version

Geekdo SDK is designed to be the simplest way to call the BoardGameGeek XMLAPI2 and get an fully typed object.

Table of contents

Installation

$ npm i geekdo-sdk

or

$ yarn add geekdo-sdk

Usage

import * as Geekdo from 'geekdo-sdk';
import { SearchParameters } from 'geekdo-sdk/dist/interfaces';

Detailed informations under the referenc section

References

user

user({ name });

Parameters

NameTypeDescription
namestringSpecifies the user name

Usage

const parameters: UserParameters = {
  name: 'wanieldeiss'
};

Geekdo.user(parameters).subscribe(
  (res) => {
    console.log('Response:', res);
  },
  (err) => {
    console.error(err);
  }
);

Response

{
  id: 12345,
  username: "wanieldeiss",
  firstname: "Daniel",
  lastname: "",
  avatarLink: "N/A",
  yearRegistered: 2019,
  lastLogin: "2021-01-05",
  stateOrProvince: "Bayern",
  country: "Germany",
  webaddress: "https://sircode.xyz",
  xboxAccount: "",
  wiiAccount: "",
  psnAccount: "",
  battleNetAccount: "",
  steamAccount: "",
  traderRating: 0,
  marketRating: 0
}

search

search({ query, type, exact });

Parameters

NameTypeDescription
querystringReturns all types of Items that match SEARCH_QUERY.
typeSearchTypesOptionally Return all items that match SEARCH_QUERY of type SearchTypes. SearchTypes might be rpgitem, videogame, boardgame, boardgameaccessory or boardgameexpansion.
exactnumberOptionally Limit results to items that match the SEARCH_QUERY exactly

Usage

const parameters: SearchParameters = {
  query: '7 Wonders',
  type: 'boardgame', // optionally
  exact: 5 // optionally
};

Geekdo.search(parameters).subscribe(
  (res) => {
    console.log('Response:', res);
  },
  (err) => {
    console.error(err);
  }
);

Response

[
  {
    id: 1234,
    type: 'boardgame',
    name: '7 Dans',
    isNameAlternate: false,
    yearPublished: 1988
  },
  {
    id: 4321,
    type: 'boardgame',
    name: 'Settlers of Sina',
    isNameAlternate: true,
    yearPublished: 1994
  }
];

thing

thing({ id });

Parameters

NameTypeDescription
idnumber | number[]Specifies the id of the thing(s) to retrieve.

Usage

const singleGame: ThingParameters = {
  id: 12345
};

const multiGames: ThingParameters = {
  id: [12345, 54321, 67890]
};

// or replace singleGame with multiGames
Geekdo.thing(singleGame).subscribe(
  (res) => {
    console.log('Response:', res);
  },
  (err) => {
    console.error(err);
  }
);

Response

If you put >1 id's into thing(), you get an array of ThingResult[]

{
  id: 12345,
  type: "boardgame",
  primaryName: "Super Awesome Boardgame",
  thumbnail: "https://cf.geekdo-images.com/.../some-thumbnail.jpg",
  image: "https://cf.geekdo-images.com/.../some-image.jpg",
  description: "Lorem ipsum dolor sit amet.",
  yearPublished: 1970,
  players: { "min": 1, "max": 5 }
}

hot

hot({ types });

Parameters

NameTypeDescription
typeHotTypesSearchTypes might be boardgame, rpg, videogame, boardgamecompany or rpgcompany.

Usage

const parameters: HotParameters = {
  type: 'boardgame'
};

Geekdo.hot(parameters).subscribe(
  (res) => {
    console.log('Response:', res);
  },
  (err) => {
    console.error(err);
  }
);

Response

[
  {
    id: 1234,
    rank: 1,
    name: 'Awesome Boardgame',
    thumbnail: 'https://cf.geekdo-images.com/.../some.jpg',
    yearPublished: 2021
  },
  {
    id: 4321,
    rank: 2,
    name: 'Another Awesome Boardgame',
    thumbnail: 'https://cf.geekdo-images.com/.../some.jpg',
    yearPublished: 2020
  }
];

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago