3808 auto creation of company when importing emails (#3881)

* create service

* wip

* use raw queries

* creating companies is working

* Fix participant handle domain name extraction

* Add HTTP service to fetch company info from domain name

* Handle 404

* Fix missing parameter in INSERT query

* wip

* renaming

* Add typing
This commit is contained in:
bosiraphael
2024-02-09 15:28:35 +01:00
committed by GitHub
parent a8cb4dc2f4
commit 11d1c4c161
3 changed files with 82 additions and 0 deletions

View File

@ -14,6 +14,7 @@ import { MessageService } from 'src/workspace/messaging/message/message.service'
import { MessageThreadService } from 'src/workspace/messaging/message-thread/message-thread.service';
import { ObjectRecord } from 'src/workspace/workspace-sync-metadata/types/object-record';
import { ConnectedAccountObjectMetadata } from 'src/workspace/workspace-sync-metadata/standard-objects/connected-account.object-metadata';
import { CreateCompanyService } from 'src/workspace/messaging/services/create-company.service';
@Injectable()
export class MessagingUtilsService {
@ -21,6 +22,7 @@ export class MessagingUtilsService {
private readonly messageChannelMessageAssociationService: MessageChannelMessageAssociationService,
private readonly messageService: MessageService,
private readonly messageThreadService: MessageThreadService,
private readonly createCompaniesService: CreateCompanyService,
) {}
public createQueriesFromMessageIds(
@ -201,6 +203,19 @@ export class MessagingUtilsService {
participantWorkspaceMemberId,
],
);
const companyDomainName = participant.handle
.split('@')?.[1]
.split('.')
.slice(-2)
.join('.')
.toLowerCase();
await this.createCompaniesService.createCompanyFromDomainName(
companyDomainName,
dataSourceMetadata,
manager,
);
}
}