UNPKG

radiobrowser-api-client

Version:
267 lines (197 loc) 4.87 kB
import { JsonProperty, JsonObject } from 'typescript-json-serializer'; @JsonObject() export class ISearchStation { @JsonProperty() public name?: string; @JsonProperty() public nameExact?: boolean; @JsonProperty({ name: 'country' }) public countryName?: string; @JsonProperty() public countryExact?: boolean; @JsonProperty({ name: 'countrycode' }) public countryCode?: string; @JsonProperty() public state?: string; @JsonProperty() public stateExact?: boolean; @JsonProperty({ name: 'language' }) public languageName?: string; @JsonProperty() public languageExact?: boolean; @JsonProperty() public tag?: string; @JsonProperty() public tagExact?: string; @JsonProperty({ beforeSerialize: (value?: string[]) => (value ? value.join(',') : []) }) public tagList?: string[]; @JsonProperty() public codec?: string; @JsonProperty() public bitrateMin?: number; @JsonProperty() public bitrateMax?: number; @JsonProperty({ name: 'has_geo_info' }) public hasGeoInfo?: boolean; @JsonProperty({ name: 'has_extended_info' }) public hasExtendedInfo?: boolean; @JsonProperty({ name: 'is_https' }) public isHttps?: boolean; @JsonProperty() public order?: | 'name' | 'url' | 'homepage' | 'favicon' | 'tags' | 'country' | 'state' | 'language' | 'votes' | 'codec' | 'bitrate' | 'lastcheckok' | 'lastchecktime' | 'clicktimestamp' | 'clickcount' | 'clicktrend' | 'changetimestamp' | 'random'; @JsonProperty() public reverse?: boolean; @JsonProperty() public offset?: number; @JsonProperty() public limit?: number; @JsonProperty({ name: 'hidebroken' }) public hideBroken?: boolean; constructor(data: ISearchStation) { Object.assign(this, data); } } @JsonObject() export class ICountries { @JsonProperty() public order?: 'name' | 'stationcount'; @JsonProperty() public reverse?: boolean; @JsonProperty({ name: 'hidebroken' }) public hideBroken?: boolean; @JsonProperty() public offset?: number; @JsonProperty() public limit?: number; constructor(data: ICountries) { Object.assign(this, data); } } @JsonObject() export class ICodecs { @JsonProperty() public order?: 'name' | 'stationcount'; @JsonProperty() public reverse?: boolean; @JsonProperty({ name: 'hidebroken' }) public hideBroken?: boolean; @JsonProperty() public offset?: number; @JsonProperty() public limit?: number; constructor(data: ICodecs) { Object.assign(this, data); } } @JsonObject() export class IStates { @JsonProperty() public order?: 'name' | 'stationcount'; @JsonProperty() public reverse?: boolean; @JsonProperty({ name: 'country' }) public countryName?: string; @JsonProperty({ name: 'hidebroken' }) public hideBroken?: boolean; @JsonProperty() public offset?: number; @JsonProperty() public limit?: number; constructor(data: IStates) { Object.assign(this, data); } } @JsonObject() export class ILanguages { @JsonProperty() public order?: 'name' | 'stationcount'; @JsonProperty() public reverse?: boolean; @JsonProperty({ name: 'hidebroken' }) public hideBroken?: boolean; @JsonProperty() public offset?: number; @JsonProperty() public limit?: number; constructor(data: ILanguages) { Object.assign(this, data); } } @JsonObject() export class ITags { @JsonProperty() public order?: 'name' | 'stationcount'; @JsonProperty() public reverse?: boolean; @JsonProperty({ name: 'hidebroken' }) public hideBroken?: boolean; @JsonProperty() public offset?: number; @JsonProperty() public limit?: number; constructor(data: ITags) { Object.assign(this, data); } } @JsonObject() export class IStationChecks { @JsonProperty({ name: 'stationUUID' }) public stationUUID?: string; @JsonProperty({ name: 'lastcheckuuid' }) public lastCheckUUID?: string; @JsonProperty() public seconds?: number; @JsonProperty() public limit?: number; constructor(data: IStationChecks) { Object.assign(this, data); } } @JsonObject() export class IStationClicks { @JsonProperty({ name: 'stationuuid' }) public stationUUID?: string; @JsonProperty() public lastClickUUID?: string; @JsonProperty() public seconds?: number; constructor(data: IStationClicks) { Object.assign(this, data); } } @JsonObject() export class IStationCheckSteps { @JsonProperty({ name: 'uuids' }) public UUIDs: string[]; constructor(data: IStationCheckSteps) { Object.assign(this, data); } } @JsonObject() export class IStationOldVersion { @JsonProperty({ name: 'lastchangeuuid' }) public lastChangeUUID?: string; @JsonProperty() public limit?: number; constructor(data: IStationOldVersion) { Object.assign(this, data); } }