UNPKG

@mrmory/bggclient

Version:

Javascript client to interact with BoardGameGeek public XML API based on boardgamegeekjsclient

116 lines (94 loc) 3.13 kB
import { JsonAlias, JsonClassType, JsonDeserialize, JsonManagedReference, JsonProperty } from "jackson-js"; export class BggCollectionItemDto { @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_objectid"] }) objectid!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_collid"] }) collid!: number; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_objecttype"] }) objecttype!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_subtype"] }) subtype!: string; @JsonProperty() @JsonClassType({ type: () => [Number] }) yearpublished!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) numplays!: number; @JsonProperty() @JsonClassType({ type: () => [String] }) image!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) thumbnail!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) comment!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonDeserialize({ //eslint-disable-next-line @typescript-eslint/no-explicit-any using: (value: []) => value.map(item => item['#text'])[0] }) name!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) originalname!: string; @JsonProperty() @JsonClassType({ type: () => [BggCollectionItemStatusDto] }) @JsonDeserialize({ //eslint-disable-next-line @typescript-eslint/no-explicit-any using: (value: any[]) => value[0] }) @JsonManagedReference() status!: BggCollectionItemStatusDto; } class BggCollectionItemStatusDto { @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_own"] }) own!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_prevowned"] }) prevowned!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_fortrade"] }) fortrade!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_want"] }) want!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_wanttoplay"] }) wanttoplay!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_wanttobuy"] }) wanttobuy!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_wishlist"] }) wishlist!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_wishlistpriority"] }) wishlistpriority!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_preordered"] }) preordered!: number; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_lastmodified"] }) lastmodified!: string; }