updateInsights()

in frontend/src/app/contact-center-analyst/home/home.component.ts [153:191]


  updateInsights(generatedInsights: GeneratedInsights, isCustomer: boolean) {
    const key = 'name';
    const uniqueEntities = [...new Map(generatedInsights.entities.map(item => [item[key].replaceAll('*', ''), item])).values()];
    const extractedEntities = uniqueEntities.filter((entity) => entity.name.length > 1).sort((a: Entity, b: Entity) => {
      if (a.entity_type == "OTHER") {
        return 1;
      } else if (b.entity_type == "OTHER") {
        return -1;

      } else {
        if (a.entity_type < b.entity_type) {
          return -1;
        }
        if (a.entity_type > b.entity_type) {
          return 1;
        }

        // names must be equal
        return 0;
      }
    });
    if (isCustomer) {
      this.extractedEntities = extractedEntities;
      this.extractedPendingTasksHTML = String(marked.parse(generatedInsights.pending_tasks));
      this.generatedInsightsHTML = String(marked.parse(generatedInsights.insights));
      this.generatedNextBestActionHTML = String(marked.parse(generatedInsights.next_best_action));
      this.generatedSummaryHTML = String(marked.parse(generatedInsights.summary));
      this.insightsLoading = false;
    }
    else {
      this.extractedEntitiesSearch = extractedEntities;
      this.extractedPendingTasksSearchHTML = String(marked.parse(generatedInsights.pending_tasks));
      this.generatedInsightsSearchHTML = String(marked.parse(generatedInsights.insights));
      this.generatedNextBestActionSearchHTML = String(marked.parse(generatedInsights.next_best_action));
      this.generatedSummarySearchHTML = String(marked.parse(generatedInsights.summary));
      this.searchInsightsLoading = false;
    }

  }