skailan-crm
Version:
Servicio de CRM y gestión de ventas para Skailan
28 lines • 1.31 kB
JavaScript
export class ListCompetitorsForOpportunity {
opportunityCompetitorRepository;
opportunityRepository;
competitorRepository;
constructor(opportunityCompetitorRepository, opportunityRepository, competitorRepository) {
this.opportunityCompetitorRepository = opportunityCompetitorRepository;
this.opportunityRepository = opportunityRepository;
this.competitorRepository = competitorRepository;
}
async execute(request) {
const { organizationId, opportunityId } = request;
const opportunity = await this.opportunityRepository.findById(opportunityId, organizationId);
if (!opportunity) {
throw new Error('Opportunity not found.');
}
const opportunityCompetitors = await this.opportunityCompetitorRepository.findCompetitorsByOpportunity(opportunityId);
const competitorIds = opportunityCompetitors.map(oc => oc.competitorId);
const competitors = [];
for (const competitorId of competitorIds) {
const competitor = await this.competitorRepository.findById(competitorId, organizationId);
if (competitor) {
competitors.push(competitor);
}
}
return competitors;
}
}
//# sourceMappingURL=ListCompetitorsForOpportunity.js.map