export function queryCall()

in src/utils/elasticsearch.js [108:137]


export function queryCall(keyword) {
  return Promise.all([queryTranscriptKeyword(keyword), queryMetadataForKeyword(keyword)]).then(results => {
      const transcriptionPromises = results[0], metadataPromises = results[1];
      return Promise.all([keyword,
        Promise.all(transcriptionPromises.map(d => {
          return queryMetadataForKeyword(d.TransactionId).then(metadata => {
            if (metadata.length === 1) {
              return metadata[0];
            }
          });
        })
        ),
        metadataPromises
      ]);
    }).then(promise => {
      const metadata = [...promise[1], ...promise[2]];
      const result = metadata.map(d => {
        const fromNumber = (d.fromNumber !== undefined && d.fromNumber !== null) ? d.fromNumber : "Unknown";
        return {
          TransactionId: d.transactionId,
          Direction: d.direction,
          StartTimeEpochSeconds: Math.ceil(new Date(d.startTime) / 1000),
          EndTimeEpochSeconds: Math.ceil(new Date(d.endTime) / 1000),
          SourcePhoneNumber: fromNumber,
        };
      });

      return new Promise(resolve => resolve(result));
    });
}