Skip to content

Instantly share code, notes, and snippets.

@AlexandroMtzG
Created August 31, 2023 06:48
Show Gist options
  • Save AlexandroMtzG/40eac67b4ca0ffea2360e8a30e28ee1f to your computer and use it in GitHub Desktop.
Save AlexandroMtzG/40eac67b4ca0ffea2360e8a30e28ee1f to your computer and use it in GitHub Desktop.
function onSelected(extractEntity: ExtractCustomEntitiesDto) {
const mapping: { [key: string]: string } = {
target_market: "targetMarket",
pain_points: "problemStatement",
capability: "capability",
alternative: "alternative",
feature: "feature",
benefit: "benefit",
use_case: "useCase",
strategic_narrative: "strategicNarrative",
};
const entityName = Object.keys(extractEntity)[0];
const entity = entitiesMetadata.allEntities.find((e) => e.name === mapping[entityName]);
if (entity) {
const searchParams = new URLSearchParams();
if (extractEntity.target_market) {
searchParams.set("rankingOrder", "0");
searchParams.set("description", extractEntity.target_market.name.toString());
searchParams.set("description", extractEntity.target_market.description);
searchParams.set("numberOfEmployees_min", "0");
searchParams.set("numberOfEmployees_max", extractEntity.target_market.number_of_employees.toString());
searchParams.set("verticalIndustry", extractEntity.target_market.vertical_industry.toString());
extractEntity.target_market.technology_stack.split(",").forEach((t) => searchParams.append("technologyStack", t.trim()));
extractEntity.target_market.job_titles_multiple.forEach((t) => searchParams.append("jobTitlesMultiple", t.trim()));
extractEntity.target_market.job_seniority.split(",").forEach((t) => searchParams.append("jobSeniority", t.trim()));
searchParams.set("revenueRange_min", "0");
searchParams.set("revenueRange_max", extractEntity.target_market.revenue_range.toString());
} else if (extractEntity.pain_points) {
// problemDescription, problemRank, assumptionCategory[]
searchParams.set("problemDescription", extractEntity.pain_points.description.toString());
searchParams.set("problemRank", extractEntity.pain_points.rank.toString());
extractEntity.pain_points.assumption_category.split(",").forEach((t) => searchParams.append("assumptionCategory", t.trim()));
} else if (extractEntity.capability) {
// capabilityDescription, assumptionCategory[], capabilityRank
searchParams.set("capabilityDescription", extractEntity.capability.description.toString());
searchParams.set("capabilityRank", extractEntity.capability.rank.toString());
extractEntity.capability.assumption_category.split(",").forEach((t) => searchParams.append("assumptionCategory", t.trim()));
} else if (extractEntity.alternative) {
// name,type[],alternativeRank,url
searchParams.set("name", extractEntity.alternative.name.toString());
extractEntity.alternative.type.split(",").forEach((t) => searchParams.append("type", t.trim()));
searchParams.set("alternativeRank", extractEntity.alternative.rank.toString());
searchParams.set("url", extractEntity.alternative.url.toString());
} else if (extractEntity.feature) {
// featureDescription, featureRank
searchParams.set("featureDescription", extractEntity.feature.description.toString());
searchParams.set("featureRank", extractEntity.feature.rank.toString());
} else if (extractEntity.benefit) {
// benefitDescription, benefitRank
searchParams.set("benefitDescription", extractEntity.benefit.description.toString());
searchParams.set("benefitRank", extractEntity.benefit.rank.toString());
} else if (extractEntity.case_studies) {
// customerProblem, outcome
searchParams.set("customerProblem", extractEntity.case_studies.customer_problem.toString());
searchParams.set("outcome", extractEntity.case_studies.outcome.toString());
} else if (extractEntity.use_case) {
// TODO return;
toast.error("Use case entity not created");
} else if (extractEntity.strategic_narrative) {
// theUndeniableShift,theOldWayOfWorkingOnThis,thePromisedLand
searchParams.set("theUndeniableShift", extractEntity.strategic_narrative.the_undeniable_shift.toString());
searchParams.set("theOldWayOfWorkingOnThis", extractEntity.strategic_narrative.the_old_way_of_working_on_this.toString());
searchParams.set("thePromisedLand", extractEntity.strategic_narrative.the_promised_land.toString());
}
setAddingEntity({ entity, extracted: extractEntity, searchParams });
} else {
toast.error(`Invalid entity: ${entityName}`);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment