From d0f149e51d0936dd8267824c0066e11449123387 Mon Sep 17 00:00:00 2001 From: jatin Date: Mon, 22 Apr 2024 17:08:58 +0530 Subject: [PATCH] feat: add greenhouse connector --- apps/app-config/connectors/connectors.def.ts | 2 ++ .../connectors/connectors.merged.ts | 8 ++++++ .../connectors/connectors.server.ts | 2 ++ apps/app-config/connectors/meta.js | 9 +++++++ apps/app-config/package.json | 1 + apps/web/public/_assets/logo-greenhouse.png | Bin 0 -> 29588 bytes connectors/connector-greenhouse/def.ts | 24 ++++++++++++++++++ connectors/connector-greenhouse/index.ts | 5 ++++ connectors/connector-greenhouse/package.json | 13 ++++++++++ connectors/connector-greenhouse/server.ts | 8 ++++++ package.json | 1 + pnpm-lock.yaml | 24 ++++++++++++++++++ 12 files changed, 97 insertions(+) create mode 100644 apps/web/public/_assets/logo-greenhouse.png create mode 100644 connectors/connector-greenhouse/def.ts create mode 100644 connectors/connector-greenhouse/index.ts create mode 100644 connectors/connector-greenhouse/package.json create mode 100644 connectors/connector-greenhouse/server.ts diff --git a/apps/app-config/connectors/connectors.def.ts b/apps/app-config/connectors/connectors.def.ts index cce03ae05..b22da0e81 100644 --- a/apps/app-config/connectors/connectors.def.ts +++ b/apps/app-config/connectors/connectors.def.ts @@ -10,6 +10,7 @@ import {default as connectorFirebase} from '@openint/connector-firebase/def' import {default as connectorForeceipt} from '@openint/connector-foreceipt/def' import {default as connectorFs} from '@openint/connector-fs/def' import {default as connectorGoogle} from '@openint/connector-google/def' +import {default as connectorGreenhouse} from '@openint/connector-greenhouse/def' import {default as connectorHeron} from '@openint/connector-heron/def' import {default as connectorHubspot} from '@openint/connector-hubspot/def' import {default as connectorLunchmoney} from '@openint/connector-lunchmoney/def' @@ -52,6 +53,7 @@ export const defConnectors = { foreceipt: connectorForeceipt, fs: connectorFs, google: connectorGoogle, + greenhouse: connectorGreenhouse, heron: connectorHeron, hubspot: connectorHubspot, lunchmoney: connectorLunchmoney, diff --git a/apps/app-config/connectors/connectors.merged.ts b/apps/app-config/connectors/connectors.merged.ts index cf24065b0..18cfc2a9f 100644 --- a/apps/app-config/connectors/connectors.merged.ts +++ b/apps/app-config/connectors/connectors.merged.ts @@ -21,6 +21,8 @@ import {default as connectorFs_def} from '@openint/connector-fs/def' import {default as connectorFs_server} from '@openint/connector-fs/server' import {default as connectorGoogle_def} from '@openint/connector-google/def' import {default as connectorGoogle_server} from '@openint/connector-google/server' +import {default as connectorGreenhouse_def} from '@openint/connector-greenhouse/def' +import {default as connectorGreenhouse_server} from '@openint/connector-greenhouse/server' import {default as connectorHeron_def} from '@openint/connector-heron/def' import {default as connectorHeron_server} from '@openint/connector-heron/server' import {default as connectorHubspot_def} from '@openint/connector-hubspot/def' @@ -133,6 +135,11 @@ const connectorGoogle = { ...connectorGoogle_server, } +const connectorGreenhouse = { + ...connectorGreenhouse_def, + ...connectorGreenhouse_server, +} + const connectorHeron = { ...connectorHeron_def, ...connectorHeron_server, @@ -288,6 +295,7 @@ export const mergedConnectors = { foreceipt: connectorForeceipt, fs: connectorFs, google: connectorGoogle, + greenhouse: connectorGreenhouse, heron: connectorHeron, hubspot: connectorHubspot, lunchmoney: connectorLunchmoney, diff --git a/apps/app-config/connectors/connectors.server.ts b/apps/app-config/connectors/connectors.server.ts index 3c286395b..5e50cfa25 100644 --- a/apps/app-config/connectors/connectors.server.ts +++ b/apps/app-config/connectors/connectors.server.ts @@ -10,6 +10,7 @@ import {default as connectorFirebase} from '@openint/connector-firebase/server' import {default as connectorForeceipt} from '@openint/connector-foreceipt/server' import {default as connectorFs} from '@openint/connector-fs/server' import {default as connectorGoogle} from '@openint/connector-google/server' +import {default as connectorGreenhouse} from '@openint/connector-greenhouse/server' import {default as connectorHeron} from '@openint/connector-heron/server' import {default as connectorHubspot} from '@openint/connector-hubspot/server' import {default as connectorLunchmoney} from '@openint/connector-lunchmoney/server' @@ -50,6 +51,7 @@ export const serverConnectors = { foreceipt: connectorForeceipt, fs: connectorFs, google: connectorGoogle, + greenhouse: connectorGreenhouse, heron: connectorHeron, hubspot: connectorHubspot, lunchmoney: connectorLunchmoney, diff --git a/apps/app-config/connectors/meta.js b/apps/app-config/connectors/meta.js index e2d3955db..f467c6ab3 100644 --- a/apps/app-config/connectors/meta.js +++ b/apps/app-config/connectors/meta.js @@ -108,6 +108,15 @@ module.exports = [ server: '@openint/connector-google/server', }, }, + { + name: 'greenhouse', + dirName: 'connector-greenhouse', + varName: 'connectorGreenhouse', + imports: { + def: '@openint/connector-greenhouse/def', + server: '@openint/connector-greenhouse/server', + }, + }, { name: 'heron', dirName: 'connector-heron', diff --git a/apps/app-config/package.json b/apps/app-config/package.json index 551e55628..cea0b4eac 100644 --- a/apps/app-config/package.json +++ b/apps/app-config/package.json @@ -25,6 +25,7 @@ "@openint/connector-foreceipt": "workspace:*", "@openint/connector-fs": "workspace:*", "@openint/connector-google": "workspace:*", + "@openint/connector-greenhouse": "workspace:*", "@openint/connector-heron": "workspace:*", "@openint/connector-hubspot": "workspace:*", "@openint/connector-lunchmoney": "workspace:*", diff --git a/apps/web/public/_assets/logo-greenhouse.png b/apps/web/public/_assets/logo-greenhouse.png new file mode 100644 index 0000000000000000000000000000000000000000..65aa60b5c7c6d4fefa6412e0b5455fb2324dc1ac GIT binary patch literal 29588 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 literal 0 HcmV?d00001 diff --git a/connectors/connector-greenhouse/def.ts b/connectors/connector-greenhouse/def.ts new file mode 100644 index 000000000..cf981dc92 --- /dev/null +++ b/connectors/connector-greenhouse/def.ts @@ -0,0 +1,24 @@ +import type {ConnectorDef, ConnectorSchemas} from '@openint/cdk' +import {connHelpers} from '@openint/cdk' +import {z} from '@openint/util' + +export const greenhouseSchema = { + name: z.literal('greenhouse'), + connectorConfig: z.object({apiKey: z.string()}), +} satisfies ConnectorSchemas + +export const greenhouseHelpers = connHelpers(greenhouseSchema) + +export const greenhouseDef = { + name: 'greenhouse', + schemas: greenhouseSchema, + metadata: { + displayName: 'greenhouse', + stage: 'beta', + categories: ['ats'], + logoUrl: '/_assets/logo-greenhouse.png', + nangoProvider: 'greenhouse', + }, +} satisfies ConnectorDef + +export default greenhouseDef diff --git a/connectors/connector-greenhouse/index.ts b/connectors/connector-greenhouse/index.ts new file mode 100644 index 000000000..de937669a --- /dev/null +++ b/connectors/connector-greenhouse/index.ts @@ -0,0 +1,5 @@ +// codegen:start {preset: barrel, include: "./{*.{ts,tsx},*/index.{ts,tsx}}", exclude: "./**/*.{d,spec,test,fixture,gen,node}.{ts,tsx}"} +export * from './def' +export * from './server' +// codegen:end +// export * from '@opensdks/sdk-hubspot' diff --git a/connectors/connector-greenhouse/package.json b/connectors/connector-greenhouse/package.json new file mode 100644 index 000000000..65caa7333 --- /dev/null +++ b/connectors/connector-greenhouse/package.json @@ -0,0 +1,13 @@ +{ + "name": "@openint/connector-greenhouse", + "version": "0.0.1", + "private": true, + "module": "./index.ts", + "dependencies": { + "@openint/cdk": "workspace:*", + "@openint/util": "workspace:*", + "@opensdks/runtime": "^0.0.16", + "@opensdks/sdk-greenhouse": "^0.0.1" + }, + "devDependencies": {} +} diff --git a/connectors/connector-greenhouse/server.ts b/connectors/connector-greenhouse/server.ts new file mode 100644 index 000000000..12120446d --- /dev/null +++ b/connectors/connector-greenhouse/server.ts @@ -0,0 +1,8 @@ +import type {ConnectorServer} from '@openint/cdk' +import type {greenhouseSchema} from './def' + +export const greenhouseServer = {} satisfies ConnectorServer< + typeof greenhouseSchema +> + +export default greenhouseServer diff --git a/package.json b/package.json index d75e0f679..26cb71c51 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "web": "pnpm run --filter web dev", "generate:docs": "pnpm run --filter app-config dev", + "generate:connectorsList": "npx tsx apps/app-config/_generateConnectorLists.ts", "docs": "cd docs && mintlify dev", "lint": "eslint --ext .js,.ts,.tsx --cache .", "mitm": "mitmweb --listen-port 3010 --web-port 3011 --mode reverse:http://localhost:3000", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 731ee7ca9..3c0031b7d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -216,6 +216,9 @@ importers: '@openint/connector-google': specifier: workspace:* version: link:../../connectors/connector-google + '@openint/connector-greenhouse': + specifier: workspace:* + version: link:../../connectors/connector-greenhouse '@openint/connector-heron': specifier: workspace:* version: link:../../connectors/connector-heron @@ -886,6 +889,21 @@ importers: specifier: ^0.0.16 version: 0.0.16 + connectors/connector-greenhouse: + dependencies: + '@openint/cdk': + specifier: workspace:* + version: link:../../kits/cdk + '@openint/util': + specifier: workspace:* + version: link:../../packages/util + '@opensdks/runtime': + specifier: ^0.0.16 + version: 0.0.16 + '@opensdks/sdk-greenhouse': + specifier: ^0.0.1 + version: 0.0.1 + connectors/connector-heron: dependencies: '@openint/cdk': @@ -5200,6 +5218,12 @@ packages: resolution: {integrity: sha512-fbKPSitxFIcCnb3v2kczLAeMuNTOqzT7IEY3O+vRtpRrFVwBjzs8m1ritQyX5nH4uWJiwfNOEPtz+iuTTzYlOw==} dev: false + /@opensdks/sdk-greenhouse@0.0.1: + resolution: {integrity: sha512-4z0DM4/tuStPOE1tkbQCZlaEzBnthfJFk1CVQYfjB1BUPjxRIUl40qpRcPkjVv64e9d0SKfPjp7k7Bm8rbDrig==} + dependencies: + '@opensdks/runtime': 0.0.19 + dev: false + /@opensdks/sdk-hubspot@0.0.6: resolution: {integrity: sha512-UivI44M/g4XwoQvDq57b9PVdlGeiCYS+6zcFJq5HhEJLzYejg21oSJ+R3LC49TINfde88fZvV+wx/ism62C65A==} dev: false