Skip to content

Commit cf1195d

Browse files
authored
feat: Add Platforms for Shortcut, Workable (#270)
* feat: shortcut client * feat: shortcut readme * feat: shortcut full logo * feat: shortcut box logo * feat: shortcut platform * feat: workable client * feat: workable readme * feat: workable full logo * feat: workable box logo * feat: workable platform * feat: update platforms index * chore: bump package version * prettier + export * remove other category * add ask subdomain
1 parent bb0be43 commit cf1195d

File tree

12 files changed

+124
-1
lines changed

12 files changed

+124
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@vesselapi/integrations",
3-
"version": "1.0.48",
3+
"version": "1.0.49",
44
"description": "Vessel integrations",
55
"main": "dist/index.js",
66
"module": "dist/index.mjs",

src/platforms/index.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,18 @@ import ringcentral from '@/platforms/ringcentral';
1818
import salesforce from '@/platforms/salesforce';
1919
import salesloft from '@/platforms/salesloft';
2020
import shopify from '@/platforms/shopify';
21+
import shortcut from '@/platforms/shortcut';
2122
import slack from '@/platforms/slack';
2223
import teams from '@/platforms/teams';
2324
import woocommerce from '@/platforms/woocommerce';
25+
import workable from '@/platforms/workable';
2426
import zendesk from '@/platforms/zendesk';
2527
import zoho from '@/platforms/zoho';
2628
import { Platform } from '@/sdk';
29+
import amplitude from './amplitude';
30+
import ashby from './ashby';
31+
import gong from './gong';
32+
import mixpanel from './mixpanel';
2733

2834
export {
2935
default as activeCampaign,
@@ -65,12 +71,24 @@ export {
6571
default as salesloft,
6672
types as salesloftTypes,
6773
} from '@/platforms/salesloft';
74+
export { default as shortcut } from '@/platforms/shortcut';
6875
export { default as slack, types as slackTypes } from '@/platforms/slack';
6976
export { default as teams, types as teamsTypes } from '@/platforms/teams';
77+
export { default as workable } from '@/platforms/workable';
7078
export { default as zendesk } from '@/platforms/zendesk';
7179
export { default as zoho } from '@/platforms/zoho';
80+
export { default as amplitude } from './amplitude';
81+
export { default as ashby } from './ashby';
82+
export { default as gong } from './gong';
83+
export { default as mixpanel } from './mixpanel';
7284

7385
export const integrationsList: Platform<any, any, any, any, any, any>[] = [
86+
shortcut,
87+
workable,
88+
gong,
89+
amplitude,
90+
ashby,
91+
mixpanel,
7492
activeCampaign,
7593
affinity,
7694
aircall,

src/platforms/shortcut/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Shortcut
2+
3+
## Description
4+
The best project planning and management tools to help software teams collaborate more easily and get more work done, faster.
5+
6+
## Resources
7+
* [Website](shortcut.com)

src/platforms/shortcut/client.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { formatUrl, makeRequestFactory } from '@/sdk/client';
2+
3+
const request = makeRequestFactory(async (auth, options) => {
4+
return {
5+
...options,
6+
url: formatUrl(`https://api.app.shortcut.com`, options.url),
7+
headers: {
8+
...options.headers,
9+
'Shortcut-Token': `${await auth.getToken()}`,
10+
},
11+
};
12+
});
13+
14+
export const client = {
15+
passthrough: request.passthrough(),
16+
};

src/platforms/shortcut/index.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { client } from '@/platforms/shortcut/client';
2+
import boxIcon from '@/platforms/shortcut/logos/box';
3+
import fullIcon from '@/platforms/shortcut/logos/full';
4+
import { auth, platform } from '@/sdk';
5+
6+
export default platform('shortcut', {
7+
auth: auth.apiToken(),
8+
display: {
9+
name: 'Shortcut',
10+
logos: {
11+
defaultURI: fullIcon ?? boxIcon,
12+
fullURI: fullIcon,
13+
boxURI: boxIcon,
14+
},
15+
colors: {
16+
primary: '#452B5B',
17+
},
18+
categories: [],
19+
},
20+
client,
21+
constants: {},
22+
actions: {},
23+
});

src/platforms/shortcut/logos/box.ts

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/platforms/shortcut/logos/full.ts

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

src/platforms/workable/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Workable
2+
3+
## Description
4+
More than an applicant tracking system, Workable's talent acquisition software helps teams find candidates, evaluate applicants and make the right hire, faster.
5+
6+
## Resources
7+
* [Website](workable.com)

src/platforms/workable/client.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import { formatUrl, makeRequestFactory } from '@/sdk/client';
2+
3+
const request = makeRequestFactory(async (auth, options) => {
4+
const { answers } = await auth.getMetadata();
5+
return {
6+
...options,
7+
url: formatUrl(`https://${answers.subdomain}.workable.com`, options.url),
8+
headers: {
9+
...options.headers,
10+
Authorization: `Bearer ${await auth.getToken()}`,
11+
},
12+
};
13+
});
14+
15+
export const client = {
16+
passthrough: request.passthrough(),
17+
};

src/platforms/workable/index.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { client } from '@/platforms/workable/client';
2+
import boxIcon from '@/platforms/workable/logos/box';
3+
import fullIcon from '@/platforms/workable/logos/full';
4+
import { auth, platform } from '@/sdk';
5+
6+
export default platform('workable', {
7+
auth: auth.apiToken({
8+
questions: [
9+
{
10+
type: 'text',
11+
id: 'subdomain',
12+
label: 'What is your Workable subdomain?',
13+
},
14+
],
15+
}),
16+
display: {
17+
name: 'Workable',
18+
logos: {
19+
defaultURI: fullIcon ?? boxIcon,
20+
fullURI: fullIcon,
21+
boxURI: boxIcon,
22+
},
23+
colors: {
24+
primary: '#00766a',
25+
},
26+
categories: [],
27+
},
28+
client,
29+
constants: {},
30+
actions: {},
31+
});

0 commit comments

Comments
 (0)