@jorsek/ezd-client
Version:
238 lines (186 loc) • 4.3 kB
text/typescript
import { Type } from "class-transformer";
import {
IsArray,
IsNumber,
IsOptional,
IsString,
ValidateNested,
} from "class-validator";
export class ISection {
public title: string;
public shortdesc: string;
public thumbnail: string;
public href: string;
public children: ISection[];
}
export class INavTree {
public title: string;
public href: string;
public shortdesc: string;
public thumbnail: string;
public type: string;
public children: INavTree[];
}
export class INavLink {
public href: string;
public title: string;
}
export class IMetaTaxonomy {
public humanReadable: string;
public values: Array<{ value: string; humanReadable: string }>;
}
export class IMetaDateTime {
public humanReadable: string;
public value: number;
}
export class IMetaLabel {}
export class IMetaTextSingleLine {}
export class IMetadata {
public taxonomy: Record<string, IMetaTaxonomy>;
public date: Record<string, IMetaDateTime>;
public label: Record<string, IMetaLabel>;
public text_single_Line: Record<string, IMetaTextSingleLine>;
}
export class IPageContent {
public content: string;
public id?: string;
public uuid?: string;
public href: string;
public breadcrumbs: INavLink[];
public versions: INavLink[];
public current_version: string;
public children: INavLink[];
public parent: INavLink;
public relatedLinks: INavLink[];
public title?: string;
public shortdesc?: string;
public previous: INavLink;
public next: INavLink;
public standardMetadata: IMetadata;
public customMetadata: IMetadata;
public page_type: string;
}
export class API_Config {
public search: API_SearchConfig;
public templates: API_Template[];
}
export class API_Template {
public title: string;
public path: string;
public image: string;
}
export class API_SearchConfig {
public filters: IFilter[];
public results_per_page: number;
public folders: string[];
}
export class ISearchHit {
public title: string;
public breadcrumbs: INavLink[];
public href: string;
public highlights: string[];
public shortDescription: string;
}
export class ISearchResponse {
public results: ISearchHit[];
public total_count: number;
}
export class IFacetValue {
public facet_name: string;
public id: string;
public children: IFacetValue[];
}
export class IFilter {
public label: string;
public key: string;
public parent_taxon: string;
}