UNPKG

@gpa-gemstone/react-interactive

Version:
30 lines (29 loc) 1.32 kB
import { Search } from './SearchBar'; interface IPagedResult<T> { Data: T[]; NumberOfPages: number; TotalRecords: number; RecordsPerPage: number; } export default class GenericController<T> { APIPath: string; DefaultSort: keyof T; Ascending: boolean; Fetch: (parentID: (void | number | string | null), sortField?: keyof T, ascending?: boolean) => JQuery.jqXHR<T[]>; DBAction: (verb: 'POST' | 'DELETE' | 'PATCH', record: T) => JQuery.jqXHR; DBSearch: (filter: Search.IFilter<T>[], sortField?: keyof T, ascending?: boolean, parentID?: (number | string)) => JQuery.jqXHR<T[]>; PagedSearch: (filter: Search.IFilter<T>[], sortField?: keyof T, ascending?: boolean, page?: number, parentID?: (number | string)) => JQuery.jqXHR<IPagedResult<T>>; /** * Creates a new Controler of type T, which can be used to perform basic CRUD operations against * a specified web api. without the Reduxstore associated with GenericSlice * @typeParam T - Model of Generic Slice * @param {string} apiPath - string containing relative path to web api * @returns a new GenericController<T> */ constructor(apiPath: string, defaultSort: keyof T, ascending?: boolean); private GetRecords; private Action; private Search; private FetchPage; } export {};