import { SearchParams, SolrCore, DataStore } from './DataStore'; import * as _ from 'lodash'; interface PageParams { page: string; query: string; facets: { [ key: string ]: string[] }; } function namespace(params: SearchParams, core: SolrCore<{}>, ns: string): [SolrCore<{}>, SearchParams] { const result: [SolrCore<{}>, SearchParams] = [core, { // TODO NAMESPACING type: 'QUERY', query: params.query, start: params.start }]; return result; } function fixParams(params: PageParams): SearchParams { return { type: 'QUERY', query: params.query, start: (parseInt(params.page || '1', 50) - 1) * 50 }; } function initializePage(dataStore: DataStore, params: PageParams) { return _.map( dataStore.cores, (core, i) => namespace(fixParams(params), core, 'glass') ).map( (thisCore: [SolrCore, SearchParams]) => thisCore[0].stateTransition(thisCore[1]) ); } export { PageParams, initializePage };