UNPKG

cluedin-widget

Version:

This project contains all the pages needed for browsing entities and searching them. The aim is to replace the CluedIn.Webapp project with this one when all the pages ( including the Admin page ) will be ported to REACT.

65 lines (48 loc) 1.49 kB
var request = require( '../helpers/request' ); var entityAPI = require( '../../iso/entity' ); export function search( q, order, filters, page ) { let url = 'api/search?q='; let filterUrl = ''; if( filters && filters.length > 0 ) { filters.forEach( function( f ) { if( filterUrl ) { filterUrl += ' AND '; } filterUrl += f.filterType + ':' + ( f.facet.term || f.facet.time ); } ); filterUrl = filterUrl.replace( 'entitytype', 'entityType' ); } url += q; if( filterUrl ) { url += ('&type=' + filterUrl); } if( page ) { url += ('&page=' + page); } if( order && order !== 'relevance' ) { let direction = ''; if( order === 'new' ) { direction = 'desc' } if( order === 'old' ) { direction = 'asc' } url += '&dateSort=true&direction=' + direction; } return request.apiRequest( 'GET', url ).then( function( resp ) { var result = resp.body; if( result.Hits ) { result.Hits = result.Hits.map( ( entity )=> { return entityAPI.toVM( entity, false, resp.__token ); } ); } return result; } ); } export function suggestedSearch( q ) { let url = 'api/search/suggest?q='; url += q; return request.apiRequest( 'GET', url ).then( function( resp ) { return resp.body; } ); }