@jorsek/ezd-client
Version:
224 lines (176 loc) • 4.05 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 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 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: Array<API_Template>;
}
export class API_Template {
title: string;
path: string;
image: string;
}
export class API_SearchConfig {
public filters: Array<IFilter>;
public results_per_page: number;
public folders: Array<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 {
facet_name: string;
id: string;
children: IFacetValue[];
}
export class IFilter {
label: string;
key: string;
parent_taxon: string;
}