@agility/content-fetch
Version:
JS/TS library for the Agility Fetch API
115 lines (114 loc) • 5.02 kB
TypeScript
import { Filter } from '../types/Filter';
import { FilterLogicOperator } from '../types/FilterLogicOperator';
import { SortDirection } from '../types/SortDirection';
import { ContentList } from '../types/ContentList';
import { ApiClientInstance } from '../types/Client';
/**
* Retrieves a list of content items by reference name.
* @memberof AgilityFetch.Client.Content
* @param {Object} requestParams - The parameters for the API request.
* @param {string} requestParams.referenceName - The unique reference name of the content list you wish to retrieve in the specified language.
* @param {string} requestParams.locale - The locale code of the content you want to retrieve.
* @param {string} requestParams.languageCode - DEPRECATED: Use locale instead - The language code of the content you want to retrieve.
* @param {number} [requestParams.contentLinkDepth] - The depth, representing the levels in which you want linked content auto-resolved. Default is **1**.
* @param {boolean} [requestParams.expandAllContentLinks] - Whether or not to expand entire linked content references, includings lists and items that are rendered in the CMS as Grid or Link. Default is **false**
* @param {number} [requestParams.take] - The maximum number of items to retrieve in this request. Default is **10**. Maximum allowed is **250**.
* @param {number} [requestParams.skip] - The number of items to skip from the list. Default is **0**. Used for implementing pagination.
* @param {string} [requestParams.sort] - The field to sort the results by. Example **fields.title** or **properties.modified**.
* @param {AgilityFetch.Types.SortDirection} [requestParams.direction] - The direction to sort the results by.
* @param {Array.<AgilityFetch.Types.Filter>} [requestParams.filters] - The collection of filters to filter the results by.
* @param {AgilityFetch.Types.FilterLogicOperator} [requestParams.filtersLogicOperator] - The logic operator to combine multiple filters.
* @returns {Promise<AgilityFetch.Types.ContentList>} - Returns a list of content items.
* @example
*
* import agility from '@agility/content-fetch'
*
* const api = agility.getApi({
* guid: 'ade6cf3c',
* apiKey: 'defaultlive.201ffdd0841cacad5bb647e76547e918b0c9ecdb8b5ddb3cf92e9a79b03623cb',
* });
*
* api.getContentList({
* referenceName: 'posts',
* locale: 'en-us',
* take: 50,
* skip: 0,
* sort: 'properties.modified',
* direction: api.types.SortDirections.ASC
* })
* .then(function(contentList) {
* console.log(contentList);
* })
* .catch(function(error) {
* console.log(error);
* });
*
* api.getContentList({
* referenceName: 'posts',
* locale: 'en-us',
* take: 50,
* skip: 0,
* filters: [
* {property: 'fields.title', operator: api.types.FilterOperators.EQUAL_TO, value: '"How this site works"'},
* {property: 'fields.details', operator: api.types.FilterOperators.LIKE, value: '"Lorem ipsum dolar"'}
* ],
* filtersLogicOperator: api.types.FilterLogicOperators.OR
* })
* .then(function(contentList) {
* console.log(contentList);
* })
* .catch(function(error) {
* console.log(error);
* });
*/
export interface ContentListRequestParams {
/**
* The unique reference name of the content list you wish to retrieve in the specified language.
*/
referenceName: string;
/**
* The locale code of the content you want to retrieve.
*/
locale?: string;
/**
* The language code of the content you want to retrieve.
* DEPRECATED: Use locale instead.
*/
languageCode?: string;
/**
* The depth, representing the levels in which you want linked content auto-resolved.
*/
contentLinkDepth?: number;
/**
* Whether or not to expand entire linked content references, includings lists and items that are rendered in the CMS as Grid or Link.
*/
expandAllContentLinks?: boolean;
/**
* The number of items to retrieve in this request. Default is 10. Maximum allowed is 250.
*/
take?: number;
/**
* The number of items to skip from the list. Used for implementing pagination.
*/
skip?: number;
/**
* The field to sort the results by. Example fields.title or properties.modified.
*/
sort?: string;
/**
* The direction to sort the results by.
*/
direction?: SortDirection;
/**
* Option: you can provide a plain text filter string as opposed to an array of filters. This is useful if you have brackets in your filter expression.
*/
filterString?: string;
/**
* Provide an array of filters as opposed to a plain text filter string.
* If you need advanced filering with brackets, use the filterString operator.
*/
filters?: Array<Filter>;
filtersLogicOperator?: FilterLogicOperator;
}
declare function getContentList(this: ApiClientInstance, requestParams: ContentListRequestParams): Promise<ContentList>;
export default getContentList;