From 59cd617b2b988714ea684156845caa3cb079b105 Mon Sep 17 00:00:00 2001 From: Wang Sijie Date: Wed, 12 Jan 2022 16:58:07 +0800 Subject: [PATCH] feat: updateConnectorConfig (#168) * feat: updateConnectorConfig * fix: throw RequestError * feat: template --- packages/core/src/connectors/utils.ts | 32 ++++++++++++++++++++++++++ packages/core/src/queries/connector.ts | 3 +++ 2 files changed, 35 insertions(+) create mode 100644 packages/core/src/connectors/utils.ts diff --git a/packages/core/src/connectors/utils.ts b/packages/core/src/connectors/utils.ts new file mode 100644 index 000000000..270b5550a --- /dev/null +++ b/packages/core/src/connectors/utils.ts @@ -0,0 +1,32 @@ +import { ConnectorConfig, ConnectorType } from '@logto/schemas'; + +import RequestError from '@/errors/RequestError'; +import { findConnectorByIdAndType, updateConnector } from '@/queries/connector'; + +export const getConnectorConfig = async ( + id: string, + type: ConnectorType +): Promise => { + const connector = await findConnectorByIdAndType(id, type); + if (!connector) { + throw new RequestError({ + code: 'entity.not_exists_with_id', + name: 'connector', + id, + status: 404, + }); + } + + return connector.config as T; +}; + +export const updateConnectorConfig = async ( + id: string, + type: ConnectorType, + config: T +): Promise => { + await updateConnector({ + where: { id, type }, + set: { config }, + }); +}; diff --git a/packages/core/src/queries/connector.ts b/packages/core/src/queries/connector.ts index 4b6a3350a..ee995d29d 100644 --- a/packages/core/src/queries/connector.ts +++ b/packages/core/src/queries/connector.ts @@ -3,6 +3,7 @@ import { sql } from 'slonik'; import { buildInsertInto } from '@/database/insert-into'; import pool from '@/database/pool'; +import { buildUpdateWhere } from '@/database/update-where'; import { convertToIdentifiers } from '@/database/utils'; const { table, fields } = convertToIdentifiers(Connectors); @@ -17,3 +18,5 @@ export const findConnectorByIdAndType = async (id: string, type: ConnectorType) export const insertConnector = buildInsertInto(pool, Connectors, { returning: true, }); + +export const updateConnector = buildUpdateWhere(pool, Connectors);