UNPKG

@mrmory/bggclient

Version:

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

143 lines (119 loc) 3.91 kB
import { JsonAlias, JsonClassType, JsonDeserialize, JsonManagedReference, JsonProperty } from "jackson-js"; export class BggPlaysPlayDto { @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_id"] }) id!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_userid"] }) userid!: number; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_date"] }) date!: string; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_quantity"] }) quantity!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_length"] }) length!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_incomplete"] }) incomplete!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_nowinstats"] }) nowinstats!: number; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_location"] }) location!: string; @JsonProperty() @JsonClassType({ type: () => [BggPlaysPlayItemDto] }) @JsonAlias({ values: ["item"] }) @JsonManagedReference() @JsonDeserialize({ //eslint-disable-next-line @typescript-eslint/no-explicit-any using: (items: any[]) => items[0] }) item!: BggPlaysPlayItemDto; @JsonProperty() @JsonClassType({ type: () => [BggPlaysPlayItemDto] }) @JsonAlias({ values: ["players"] }) @JsonManagedReference() @JsonDeserialize({ //eslint-disable-next-line @typescript-eslint/no-explicit-any using: (items: any[]) => items[0].player }) players!: BggPlaysPlayPlayerDto[]; } class BggPlaysPlayItemDto { @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_name"] }) name!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_objecttype"] }) objecttype!: string; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_objectid"] }) objectid!: number; @JsonProperty() @JsonClassType({ type: () => [Array, [BggPlaysPlayItemSubtypes]] }) @JsonDeserialize({ //eslint-disable-next-line @typescript-eslint/no-explicit-any using: (items: any[]) => items[0].subtype }) @JsonManagedReference() subtypes!: BggPlaysPlayItemSubtypes[] } class BggPlaysPlayItemSubtypes { @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_value"] }) value!: string; } class BggPlaysPlayPlayerDto { @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_color"] }) color!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_name"] }) name!: string; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_new"] }) new!: number; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_rating"] }) rating!: number; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_score"] }) score!: string; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_startposition"] }) startposition!: string; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_userid"] }) userid!: number; @JsonProperty() @JsonClassType({ type: () => [String] }) @JsonAlias({ values: ["@_username"] }) username!: string; @JsonProperty() @JsonClassType({ type: () => [Number] }) @JsonAlias({ values: ["@_win"] }) win!: number; }