5622 add a syncemail onboarding step (#5689)

- add sync email onboarding step
- refactor calendar and email visibility enums
- add a new table `keyValuePair` in `core` schema
- add a new resolved boolean field `skipSyncEmail` in current user




https://github.com/twentyhq/twenty/assets/29927851/de791475-5bfe-47f9-8e90-76c349fba56f
This commit is contained in:
martmull
2024-06-05 18:16:53 +02:00
committed by GitHub
parent fda0d2a170
commit 9f6a6c3282
92 changed files with 2707 additions and 1246 deletions

View File

@ -62,6 +62,41 @@ export class ConnectedAccountRepository {
return connectedAccounts;
}
public async getAllByUserId(
userId: string,
workspaceId: string,
transactionManager?: EntityManager,
): Promise<ObjectRecord<ConnectedAccountWorkspaceEntity>[] | undefined> {
const schemaExists =
await this.workspaceDataSourceService.checkSchemaExists(workspaceId);
if (!schemaExists) {
return;
}
const dataSourceSchema =
this.workspaceDataSourceService.getSchemaName(workspaceId);
const workspaceMember = (
await this.workspaceDataSourceService.executeRawQuery(
`SELECT * FROM ${dataSourceSchema}."workspaceMember" WHERE "userId" = $1`,
[userId],
workspaceId,
transactionManager,
)
)?.[0];
if (!workspaceMember) {
return;
}
return await this.getAllByWorkspaceMemberId(
workspaceMember.id,
workspaceId,
transactionManager,
);
}
public async getAllByHandleAndWorkspaceMemberId(
handle: string,
workspaceMemberId: string,

View File

@ -41,9 +41,9 @@ export enum MessageChannelSyncStage {
}
export enum MessageChannelVisibility {
METADATA = 'metadata',
SUBJECT = 'subject',
SHARE_EVERYTHING = 'share_everything',
METADATA = 'METADATA',
SUBJECT = 'SUBJECT',
SHARE_EVERYTHING = 'SHARE_EVERYTHING',
}
export enum MessageChannelType {

View File

@ -28,6 +28,20 @@ export class WorkspaceMemberRepository {
return result;
}
public async find(workspaceMemberId: string, workspaceId: string) {
const dataSourceSchema =
this.workspaceDataSourceService.getSchemaName(workspaceId);
const workspaceMembers =
await this.workspaceDataSourceService.executeRawQuery(
`SELECT * FROM ${dataSourceSchema}."workspaceMember" WHERE "id" = $1`,
[workspaceMemberId],
workspaceId,
);
return workspaceMembers?.[0];
}
public async getByIdOrFail(
userId: string,
workspaceId: string,