From e47101e08b9aa064452739218486b0bea3a9e84e Mon Sep 17 00:00:00 2001 From: bosiraphael <71827178+bosiraphael@users.noreply.github.com> Date: Tue, 21 May 2024 13:31:39 +0200 Subject: [PATCH] 5483 modify messagechannel syncstatus (#5484) - Closes #5483 - Fix seeds - Add default value to syncSubStatus --- .../workspace/connected-account.ts | 6 +- .../message-channel-message-associations.ts | 6 +- .../workspace/message-channels.ts | 62 +++++-------------- .../message-channel.workspace-entity.ts | 48 +++++++++++--- 4 files changed, 64 insertions(+), 58 deletions(-) diff --git a/packages/twenty-server/src/database/typeorm-seeds/workspace/connected-account.ts b/packages/twenty-server/src/database/typeorm-seeds/workspace/connected-account.ts index 375d03013..a35e5730a 100644 --- a/packages/twenty-server/src/database/typeorm-seeds/workspace/connected-account.ts +++ b/packages/twenty-server/src/database/typeorm-seeds/workspace/connected-account.ts @@ -41,7 +41,7 @@ export const seedConnectedAccount = async ( refreshToken: 'exampleRefreshToken', accessToken: 'exampleAccessToken', provider: 'google', - handle: 'incoming', + handle: 'tim@apple.dev', }, { id: DEV_SEED_CONNECTED_ACCOUNT_IDS.JONY, @@ -53,7 +53,7 @@ export const seedConnectedAccount = async ( refreshToken: 'exampleRefreshToken', accessToken: 'exampleAccessToken', provider: 'google', - handle: 'incoming', + handle: 'jony.ive@apple.dev', }, { id: DEV_SEED_CONNECTED_ACCOUNT_IDS.PHIL, @@ -65,7 +65,7 @@ export const seedConnectedAccount = async ( refreshToken: 'exampleRefreshToken', accessToken: 'exampleAccessToken', provider: 'google', - handle: 'incoming', + handle: 'phil.schiler@apple.dev', }, ]) .execute(); diff --git a/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channel-message-associations.ts b/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channel-message-associations.ts index 26f2b67c2..2bc170306 100644 --- a/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channel-message-associations.ts +++ b/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channel-message-associations.ts @@ -41,7 +41,7 @@ export const seedMessageChannelMessageAssociation = async ( messageThreadId: DEV_SEED_MESSAGE_THREAD_IDS.MESSAGE_THREAD_1, messageExternalId: null, messageId: DEV_SEED_MESSAGE_IDS.MESSAGE_1, - messageChannelId: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM_INCOMING, + messageChannelId: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM, }, { id: DEV_SEED_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_IDS.MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_2, @@ -52,7 +52,7 @@ export const seedMessageChannelMessageAssociation = async ( messageThreadId: DEV_SEED_MESSAGE_THREAD_IDS.MESSAGE_THREAD_2, messageExternalId: null, messageId: DEV_SEED_MESSAGE_IDS.MESSAGE_2, - messageChannelId: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM_INCOMING, + messageChannelId: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM, }, { id: DEV_SEED_MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_IDS.MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_3, @@ -63,7 +63,7 @@ export const seedMessageChannelMessageAssociation = async ( messageThreadId: DEV_SEED_MESSAGE_THREAD_IDS.MESSAGE_THREAD_1, messageExternalId: null, messageId: DEV_SEED_MESSAGE_IDS.MESSAGE_3, - messageChannelId: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM_INCOMING, + messageChannelId: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM, }, ]) .execute(); diff --git a/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channels.ts b/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channels.ts index 0db6e84b8..70bc1a638 100644 --- a/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channels.ts +++ b/packages/twenty-server/src/database/typeorm-seeds/workspace/message-channels.ts @@ -1,16 +1,14 @@ import { EntityManager } from 'typeorm'; import { DEV_SEED_CONNECTED_ACCOUNT_IDS } from 'src/database/typeorm-seeds/workspace/connected-account'; +import { MessageChannelSyncSubStatus } from 'src/modules/messaging/standard-objects/message-channel.workspace-entity'; const tableName = 'messageChannel'; export const DEV_SEED_MESSAGE_CHANNEL_IDS = { - TIM_INCOMING: '20202020-9b80-4c2c-a597-383db48de1d6', - TIM_OUTGOING: '20202020-09ed-4eb9-8b23-62aa4fd81d83', - JONY_INCOMING: '20202020-5ffe-4b32-814a-983d5e4911cd', - JONY_OUTGOING: '20202020-9dad-4329-8180-62647a2d7510', - PHIL_INCOMING: '20202020-e2f1-49b5-85d2-5d3a3386990c', - PHIL_OUTGOING: '20202020-fdff-438f-9132-7d5f216dfc4d', + TIM: '20202020-9b80-4c2c-a597-383db48de1d6', + JONY: '20202020-5ffe-4b32-814a-983d5e4911cd', + PHIL: '20202020-e2f1-49b5-85d2-5d3a3386990c', }; export const seedMessageChannel = async ( @@ -30,74 +28,48 @@ export const seedMessageChannel = async ( 'connectedAccountId', 'handle', 'visibility', + 'syncSubStatus', ]) .orIgnore() .values([ { - id: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM_INCOMING, + id: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM, createdAt: new Date(), updatedAt: new Date(), deletedAt: null, isContactAutoCreationEnabled: true, type: 'email', connectedAccountId: DEV_SEED_CONNECTED_ACCOUNT_IDS.TIM, - handle: 'outgoing', + handle: 'tim@apple.dev', visibility: 'share_everything', + syncSubStatus: + MessageChannelSyncSubStatus.FULL_MESSAGES_LIST_FETCH_PENDING, }, { - id: DEV_SEED_MESSAGE_CHANNEL_IDS.TIM_OUTGOING, - createdAt: new Date(), - updatedAt: new Date(), - deletedAt: null, - isContactAutoCreationEnabled: true, - type: 'email', - connectedAccountId: DEV_SEED_CONNECTED_ACCOUNT_IDS.TIM, - handle: 'incoming', - visibility: 'share_everything', - }, - { - id: DEV_SEED_MESSAGE_CHANNEL_IDS.JONY_INCOMING, + id: DEV_SEED_MESSAGE_CHANNEL_IDS.JONY, createdAt: new Date(), updatedAt: new Date(), deletedAt: null, isContactAutoCreationEnabled: true, type: 'email', connectedAccountId: DEV_SEED_CONNECTED_ACCOUNT_IDS.JONY, - handle: 'outgoing', + handle: 'jony.ive@apple.dev', visibility: 'share_everything', + syncSubStatus: + MessageChannelSyncSubStatus.FULL_MESSAGES_LIST_FETCH_PENDING, }, { - id: DEV_SEED_MESSAGE_CHANNEL_IDS.JONY_OUTGOING, - createdAt: new Date(), - updatedAt: new Date(), - deletedAt: null, - isContactAutoCreationEnabled: true, - type: 'email', - connectedAccountId: DEV_SEED_CONNECTED_ACCOUNT_IDS.JONY, - handle: 'incoming', - visibility: 'share_everything', - }, - { - id: DEV_SEED_MESSAGE_CHANNEL_IDS.PHIL_INCOMING, + id: DEV_SEED_MESSAGE_CHANNEL_IDS.PHIL, createdAt: new Date(), updatedAt: new Date(), deletedAt: null, isContactAutoCreationEnabled: true, type: 'email', connectedAccountId: DEV_SEED_CONNECTED_ACCOUNT_IDS.PHIL, - handle: 'outgoing', - visibility: 'share_everything', - }, - { - id: DEV_SEED_MESSAGE_CHANNEL_IDS.PHIL_OUTGOING, - createdAt: new Date(), - updatedAt: new Date(), - deletedAt: null, - isContactAutoCreationEnabled: true, - type: 'email', - connectedAccountId: DEV_SEED_CONNECTED_ACCOUNT_IDS.PHIL, - handle: 'incoming', + handle: 'phil.schiler@apple.dev', visibility: 'share_everything', + syncSubStatus: + MessageChannelSyncSubStatus.FULL_MESSAGES_LIST_FETCH_PENDING, }, ]) .execute(); diff --git a/packages/twenty-server/src/modules/messaging/standard-objects/message-channel.workspace-entity.ts b/packages/twenty-server/src/modules/messaging/standard-objects/message-channel.workspace-entity.ts index 11189b0c4..7895e8514 100644 --- a/packages/twenty-server/src/modules/messaging/standard-objects/message-channel.workspace-entity.ts +++ b/packages/twenty-server/src/modules/messaging/standard-objects/message-channel.workspace-entity.ts @@ -18,10 +18,17 @@ import { WorkspaceIsNullable } from 'src/engine/twenty-orm/decorators/workspace- import { WorkspaceRelation } from 'src/engine/twenty-orm/decorators/workspace-relation.decorator'; export enum MessageChannelSyncStatus { + // TO BE DEPRECATED PENDING = 'PENDING', - ONGOING = 'ONGOING', SUCCEEDED = 'SUCCEEDED', FAILED = 'FAILED', + + // NEW STATUSES + NOT_SYNCED = 'NOT_SYNCED', + ONGOING = 'ONGOING', + COMPLETED = 'COMPLETED', + FAILED_INSUFFICIENT_PERMISSIONS = 'FAILED_INSUFFICIENT_PERMISSIONS', + FAILED_UNKNOWN = 'FAILED_UNKNOWN', } export enum MessageChannelSyncSubStatus { @@ -163,18 +170,13 @@ export class MessageChannelWorkspaceEntity extends BaseWorkspaceEntity { description: 'Sync status', icon: 'IconStatusChange', options: [ + // TO BE DEPRECATED: PENDING, SUCCEEDED, FAILED { value: MessageChannelSyncStatus.PENDING, label: 'Pending', position: 0, color: 'blue', }, - { - value: MessageChannelSyncStatus.ONGOING, - label: 'Ongoing', - position: 1, - color: 'yellow', - }, { value: MessageChannelSyncStatus.SUCCEEDED, label: 'Succeeded', @@ -187,6 +189,37 @@ export class MessageChannelWorkspaceEntity extends BaseWorkspaceEntity { position: 3, color: 'red', }, + // NEW STATUSES + { + value: MessageChannelSyncStatus.ONGOING, + label: 'Ongoing', + position: 1, + color: 'yellow', + }, + { + value: MessageChannelSyncStatus.NOT_SYNCED, + label: 'Not Synced', + position: 4, + color: 'blue', + }, + { + value: MessageChannelSyncStatus.COMPLETED, + label: 'Completed', + position: 5, + color: 'green', + }, + { + value: MessageChannelSyncStatus.FAILED_INSUFFICIENT_PERMISSIONS, + label: 'Failed Insufficient Permissions', + position: 6, + color: 'red', + }, + { + value: MessageChannelSyncStatus.FAILED_UNKNOWN, + label: 'Failed Unknown', + position: 7, + color: 'red', + }, ], }) @WorkspaceIsNullable() @@ -230,6 +263,7 @@ export class MessageChannelWorkspaceEntity extends BaseWorkspaceEntity { color: 'orange', }, ], + defaultValue: `'${MessageChannelSyncSubStatus.FULL_MESSAGES_LIST_FETCH_PENDING}'`, }) syncSubStatus: MessageChannelSyncSubStatus;