From 9dda1f7d19b24e9b50bcdefff44af1017618b578 Mon Sep 17 00:00:00 2001 From: Aric Lasry Date: Thu, 5 Oct 2023 10:32:27 +0200 Subject: [PATCH] Start sync workflow after transaction.commit() (#1967) --- connectors/src/connectors/github/index.ts | 21 +++++++++++---------- connectors/src/connectors/notion/index.ts | 8 +++++--- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/connectors/src/connectors/github/index.ts b/connectors/src/connectors/github/index.ts index 10c622ec94cb..df8bb5a56c36 100644 --- a/connectors/src/connectors/github/index.ts +++ b/connectors/src/connectors/github/index.ts @@ -36,9 +36,8 @@ export async function createGithubConnector( if (!(await validateInstallationId(githubInstallationId))) { return new Err(new Error("Github installation id is invalid")); } - - return await sequelize_conn.transaction(async (transaction) => { - try { + try { + const connector = await sequelize_conn.transaction(async (transaction) => { const connector = await Connector.create( { type: "github", @@ -57,14 +56,16 @@ export async function createGithubConnector( }, { transaction } ); - await launchGithubFullSyncWorkflow(connector.id.toString()); - return new Ok(connector.id.toString()); - } catch (err) { - logger.error({ error: err }, "Error creating github connector"); - return new Err(err as Error); - } - }); + return connector; + }); + await launchGithubFullSyncWorkflow(connector.id.toString()); + return new Ok(connector.id.toString()); + } catch (err) { + logger.error({ error: err }, "Error creating github connector"); + + return new Err(err as Error); + } } export async function updateGithubConnector( diff --git a/connectors/src/connectors/notion/index.ts b/connectors/src/connectors/notion/index.ts index a5f881721ceb..413f4a1216a5 100644 --- a/connectors/src/connectors/notion/index.ts +++ b/connectors/src/connectors/notion/index.ts @@ -55,7 +55,7 @@ export async function createNotionConnector( } try { - return await sequelize_conn.transaction(async (transaction) => { + const connector = await sequelize_conn.transaction(async (transaction) => { const connector = await Connector.create( { type: "notion", @@ -73,9 +73,11 @@ export async function createNotionConnector( }, { transaction } ); - await launchNotionSyncWorkflow(connector.id.toString()); - return new Ok(connector.id.toString()); + + return connector; }); + await launchNotionSyncWorkflow(connector.id.toString()); + return new Ok(connector.id.toString()); } catch (e) { logger.error({ error: e }, "Error creating notion connector."); return new Err(e as Error);