@goteborgco/open-api-js-client
Version:
Official JavaScript client for the Göteborg & Co GraphQL API
211 lines (210 loc) • 5.3 kB
TypeScript
export interface Media {
id: number;
credit?: string;
caption?: string;
alt_text?: string;
media_type?: string;
mime_type?: string;
sizes?: MediaSizes;
getSizes(): MediaSizes;
getUrl(size?: 'full' | 'large' | 'medium' | 'thumbnail'): string | undefined;
}
export interface MediaSizes {
medium?: Image;
thumbnail?: Image;
large?: Image;
full?: Image;
getSize(size: 'full' | 'large' | 'medium' | 'thumbnail'): Image | undefined;
getUrl(size: 'full' | 'large' | 'medium' | 'thumbnail'): string | undefined;
getDimensions(size: 'full' | 'large' | 'medium' | 'thumbnail'): {
width: number;
height: number;
} | undefined;
}
export interface Image {
width: number;
height: number;
source_url: string;
}
export interface Contact {
email?: string;
phone?: string;
website?: string;
facebook?: string;
instagram?: string;
getSocialLinks(): {
facebook?: string;
instagram?: string;
};
getContactMethods(): {
email?: string;
phone?: string;
website?: string;
};
hasContactInfo(): boolean;
}
export interface Location {
address?: string;
lat?: number;
lng?: number;
zoom?: number;
place_id?: string;
name?: string;
street_number?: string;
street_name?: string;
state?: string;
post_code?: string;
country?: string;
country_short?: string;
getCoordinates(): {
lat: number;
lng: number;
} | undefined;
getFormattedAddress(): string | undefined;
getShortAddress(): string | undefined;
}
export interface EventDate {
start?: string;
end?: string;
isActive(): boolean;
getFormattedRange(): string | undefined;
}
export interface CurrentInTime {
months: number[];
weekdays: number[];
hasMonth(month: number): boolean;
hasWeekday(weekday: number): boolean;
isCurrentlyActive(): boolean;
getFormattedSchedule(): string | undefined;
}
export interface Features {
type: string;
geometry: Geometry;
properties: Properties;
}
export interface Geometry {
type: string;
coordinates: number[];
latitude?: number;
longitude?: number;
}
export interface Properties {
name: string;
id: number;
icon: string;
thumbnail: string;
type: string;
slug: string;
}
export interface Markers {
type: string;
features: Features[];
}
export interface Related {
places?: WpEntity[];
guides?: WpEntity[];
events?: WpEntity[];
getPlaces(): WpEntity[] | undefined;
getGuides(): WpEntity[] | undefined;
getEvents(): WpEntity[] | undefined;
getAllRelated(): {
places?: WpEntity[];
guides?: WpEntity[];
events?: WpEntity[];
};
hasRelatedContent(): boolean;
}
export interface Translations {
sv?: number;
en?: number;
de?: number;
getTranslation(lang: 'en' | 'sv' | 'de'): number | undefined;
hasTranslation(lang: 'en' | 'sv' | 'de'): boolean;
getAvailableTranslations(): {
lang: 'en' | 'sv' | 'de';
id: number;
}[];
}
export interface WpEntity {
id: number;
date?: string;
modified?: string;
type?: string;
link?: string;
title?: string;
content?: string;
excerpt?: string;
categories?: number[];
areas?: number[];
tags?: number[];
invisible_tags?: number[];
lang: 'en' | 'sv' | 'de';
translations?: Translations;
featuredmedia?: Media[];
category_heading?: string;
gallery?: Media[];
contact?: Contact;
location?: Location;
is_free?: boolean;
dates?: EventDate[];
place_id?: number;
classification?: number;
current_in_time?: CurrentInTime;
getFeaturedMedia(): Media | undefined;
getImageUrl(size?: 'full' | 'large' | 'medium' | 'thumbnail'): string | undefined;
getGalleryUrls(size?: 'full' | 'large' | 'medium' | 'thumbnail'): string[];
isActive(): boolean;
getCoordinates(): {
lat: number;
lng: number;
} | undefined;
getFormattedAddress(): string | undefined;
getContact(): Contact | undefined;
getTranslation(lang: 'en' | 'sv' | 'de'): number | undefined;
getCurrentInTime(): CurrentInTime | undefined;
}
export interface GuideFilter {
lang: 'en' | 'sv' | 'de';
categories?: number[];
areas?: number[];
tags?: number[];
invisible_tags?: number[];
per_page?: number;
page?: number;
}
export interface EventFilter {
lang: 'en' | 'sv' | 'de';
places?: number[];
categories?: number[];
areas?: number[];
tags?: number[];
invisible_tags?: number[];
free?: number;
start?: string;
end?: string;
distance?: number;
coords?: string;
per_page?: number;
page?: number;
}
export interface PlaceFilter {
lang: 'en' | 'sv' | 'de';
places?: number[];
categories?: number[];
areas?: number[];
tags?: number[];
distance?: number;
coords?: string;
per_page?: number;
page?: number;
}
export interface LangFilter {
lang?: 'en' | 'sv' | 'de';
}
export interface SearchFilter extends LangFilter {
query: string;
}
export interface SortOptions {
fields?: string | string[];
orders?: 'asc' | 'desc' | ('asc' | 'desc')[];
}