@@ -23,7 +23,16 @@ import { cloneDeep, isPlainObject } from 'lodash';
2323import { SearchParams } from 'elasticsearch' ;
2424import { TimeCache } from './time_cache' ;
2525import { SearchAPI } from './search_api' ;
26- import { Opts , Type , Data , UrlObject , Bool , Requests , Query , ContextVarsObject } from './types' ;
26+ import {
27+ Opts ,
28+ Type ,
29+ Data ,
30+ UrlObject ,
31+ Bool ,
32+ EsQueryRequest ,
33+ Query ,
34+ ContextVarsObject ,
35+ } from './types' ;
2736
2837const TIMEFILTER : string = '%timefilter%' ;
2938const AUTOINTERVAL : string = '%autointerval%' ;
@@ -36,6 +45,13 @@ const LEGACY_CONTEXT: string = '%context_query%';
3645const CONTEXT : string = '%context%' ;
3746const TIMEFIELD : string = '%timefield%' ;
3847
48+ const getRequestName = ( request : EsQueryRequest , index : number ) =>
49+ request . dataObject . name ||
50+ i18n . translate ( 'visTypeVega.esQueryParser.unnamedRequest' , {
51+ defaultMessage : 'Unnamed request #{index}' ,
52+ values : { index } ,
53+ } ) ;
54+
3955/**
4056 * This class parses ES requests specified in the data.url objects.
4157 */
@@ -196,14 +212,22 @@ export class EsQueryParser {
196212 * @param {object[] } requests each object is generated by parseUrl()
197213 * @returns {Promise<void> }
198214 */
199- async populateData ( requests : Requests [ ] ) {
200- const esSearches = requests . map ( ( r : Requests ) => r . url ) ;
215+ async populateData ( requests : EsQueryRequest [ ] ) {
216+ const esSearches = requests . map ( ( r : EsQueryRequest , index : number ) => ( {
217+ ...r . url ,
218+ name : getRequestName ( r , index ) ,
219+ } ) ) ;
220+
201221 const data$ = this . _searchAPI . search ( esSearches ) ;
202222
203223 const results = await data$ . toPromise ( ) ;
204224
205- results . forEach ( ( data ) => {
206- requests [ data . id ] . dataObject . values = data . rawResponse ;
225+ results . forEach ( ( data , index ) => {
226+ const requestObject = requests . find ( ( item ) => getRequestName ( item , index ) === data . name ) ;
227+
228+ if ( requestObject ) {
229+ requestObject . dataObject . values = data . rawResponse ;
230+ }
207231 } ) ;
208232 }
209233
0 commit comments