tsonik
Version:
A TypeScript client library for the Iconik API based on Swagger documentation
133 lines • 3.05 kB
TypeScript
/**
* Search-related type definitions
*/
export type DocType = 'assets' | 'collections' | 'segments' | 'saved_searches' | 'saved_search_groups';
export type FilterOperator = string;
export type SortOrder = string;
/**
* Range filter for date/numeric field searches
* Format: +02:00. Results returned in UTC by default
*/
export interface CriteriaRangeFilter {
max?: string;
min?: string;
/** Format: +02:00. Results returned in UTC by default */
timezone?: string;
}
/**
* Individual search term/condition
*/
export interface CriteriaTerm {
exists?: boolean;
missing?: boolean;
name: string;
range?: CriteriaRangeFilter;
value?: string;
value_in?: string[];
}
/**
* Nested filter structure supporting logical operations
*/
export interface CriteriaFilter {
filters?: CriteriaFilter[];
operator: string;
terms?: CriteriaTerm[];
}
/**
* Faceted search filter
*/
export interface FacetFilter {
name: string;
value_in?: string[];
}
/**
* Sort configuration
*/
export interface CriteriaSort {
name: string;
order?: string;
}
/**
* Main search criteria interface matching Swagger SearchCriteriaSchema
*/
export interface SearchCriteria {
doc_types?: DocType[];
exclude_fields?: string[];
facets?: string[];
facets_filters?: FacetFilter[];
filter?: CriteriaFilter;
include_fields?: string[];
metadata_view_id?: string;
query?: string;
/**
* Used for infinite scroll pagination instead of deprecated scroll API.
* Accepts a list of sort keys for getting next page from `_sort` key of last object
*/
search_after?: (string | number | boolean | null)[];
search_fields?: string[];
sort?: CriteriaSort[];
}
/**
* Alias for backward compatibility with original naming
*/
export type SearchRequest = SearchCriteria;
/**
* Search document result item
*/
export interface SearchDocument {
date_created?: string;
date_modified?: string;
description?: string;
id?: string;
metadata?: object;
object_type: string;
title: string;
}
/**
* Search results response
*/
export interface SearchDocuments {
facets?: object;
first_url?: string;
last_url?: string;
next_url?: string;
objects?: SearchDocument[];
page?: number;
pages?: number;
per_page?: number;
prev_url?: string;
scroll_id?: string;
total?: number;
}
/**
* Search suggestions request
*/
export interface SearchSuggest {
doc_types?: DocType[];
field_name: string;
metadata_view_id?: string;
query: string;
}
/**
* Search suggestion response item
*/
export interface SearchSuggestResponse {
value?: string;
}
/**
* Search suggestions response
*/
export interface SearchSuggestsResponse {
objects?: SearchSuggestResponse[];
}
/**
* Query parameters for search endpoints
*/
export interface SearchQueryParams {
page?: number;
per_page?: number;
scroll?: boolean;
scroll_id?: string;
sort?: string;
}
//# sourceMappingURL=search.d.ts.map