@activepieces/piece-nifty 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/package.json +19 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +33 -0
- package/src/index.js.map +1 -0
- package/src/lib/actions/create-task.d.ts +7 -0
- package/src/lib/actions/create-task.js +40 -0
- package/src/lib/actions/create-task.js.map +1 -0
- package/src/lib/common/index.d.ts +8 -0
- package/src/lib/common/index.js +151 -0
- package/src/lib/common/index.js.map +1 -0
package/README.md
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@activepieces/piece-nifty",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"@sinclair/typebox": "^0.26.3",
|
|
6
|
+
"axios": "1.4.0",
|
|
7
|
+
"dayjs": "^1.11.8",
|
|
8
|
+
"is-base64": "^1.1.0",
|
|
9
|
+
"nanoid": "^3.3.4",
|
|
10
|
+
"object-sizeof": "^2.6.3",
|
|
11
|
+
"semver": "7.5.3",
|
|
12
|
+
"@activepieces/pieces-common": "0.2.2",
|
|
13
|
+
"@activepieces/pieces-framework": "0.6.11",
|
|
14
|
+
"@activepieces/shared": "0.7.0",
|
|
15
|
+
"tslib": "1.14.1"
|
|
16
|
+
},
|
|
17
|
+
"main": "./src/index.js",
|
|
18
|
+
"types": "./src/index.d.ts"
|
|
19
|
+
}
|
package/src/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const niftyAuth: import("@activepieces/pieces-framework").OAuth2Property<true, import("@activepieces/pieces-framework").OAuth2Props>;
|
|
2
|
+
export declare const nifty: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").OAuth2Property<true, import("@activepieces/pieces-framework").OAuth2Props>>;
|
package/src/index.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.nifty = exports.niftyAuth = void 0;
|
|
4
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
5
|
+
const create_task_1 = require("./lib/actions/create-task");
|
|
6
|
+
const mddescription = `
|
|
7
|
+
# How to add a new connection
|
|
8
|
+
1. Login to your nifty account at https://niftypm.com/
|
|
9
|
+
2. From your account settings, click on App Center
|
|
10
|
+
3. After that click on Integrate with API
|
|
11
|
+
4. Then Create a new app
|
|
12
|
+
5. Select the Name and Description you want
|
|
13
|
+
6. copy the redirect url from the piece and fill the url field ( without https:// )
|
|
14
|
+
7. check out Milestones , Subtasks , Projects , Statuses , Tasks and Portfolios
|
|
15
|
+
8. copy the client id and client secret and paste them in the piece
|
|
16
|
+
`;
|
|
17
|
+
exports.niftyAuth = pieces_framework_1.PieceAuth.OAuth2({
|
|
18
|
+
authUrl: 'https://nifty.pm/authorize',
|
|
19
|
+
tokenUrl: 'https://openapi.niftypm.com/oauth/token',
|
|
20
|
+
required: true,
|
|
21
|
+
description: mddescription,
|
|
22
|
+
scope: ['task', 'project', 'subtask', 'milestone', 'subteam'],
|
|
23
|
+
});
|
|
24
|
+
exports.nifty = (0, pieces_framework_1.createPiece)({
|
|
25
|
+
displayName: 'Nifty',
|
|
26
|
+
auth: exports.niftyAuth,
|
|
27
|
+
minimumSupportedRelease: '0.7.1',
|
|
28
|
+
logoUrl: 'https://cdn.activepieces.com/pieces/nifty.png',
|
|
29
|
+
authors: ['Salem-Alaa'],
|
|
30
|
+
actions: [create_task_1.createTask],
|
|
31
|
+
triggers: [],
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/pieces/nifty/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,2DAAuD;AAEvD,MAAM,aAAa,GAAG;;;;;;;;;;CAUrB,CAAC;AAGW,QAAA,SAAS,GAAG,4BAAS,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,4BAA4B;IACrC,QAAQ,EAAE,yCAAyC;IACnD,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC;CAC9D,CAAC,CAAC;AAEU,QAAA,KAAK,GAAG,IAAA,8BAAW,EAAC;IAC/B,WAAW,EAAE,OAAO;IACpB,IAAI,EAAE,iBAAS;IACf,uBAAuB,EAAE,OAAO;IAChC,OAAO,EAAE,+CAA+C;IACxD,OAAO,EAAE,CAAC,YAAY,CAAC;IACvB,OAAO,EAAE,CAAC,wBAAU,CAAC;IACrB,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const createTask: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<true, import("@activepieces/pieces-framework").OAuth2Props>, {
|
|
2
|
+
portfolio: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
3
|
+
project: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
status: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
5
|
+
milestone: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
6
|
+
task_name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
|
|
7
|
+
}>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTask = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
const common_1 = require("../common");
|
|
8
|
+
const index_1 = require("../../index");
|
|
9
|
+
exports.createTask = (0, pieces_framework_1.createAction)({
|
|
10
|
+
name: 'create_task',
|
|
11
|
+
auth: index_1.niftyAuth,
|
|
12
|
+
displayName: 'Create Task',
|
|
13
|
+
description: 'Create a task in nitfy',
|
|
14
|
+
props: {
|
|
15
|
+
portfolio: common_1.nitfyCommon.portfolio,
|
|
16
|
+
project: common_1.nitfyCommon.project,
|
|
17
|
+
status: common_1.nitfyCommon.status,
|
|
18
|
+
milestone: common_1.nitfyCommon.milestone,
|
|
19
|
+
task_name: pieces_framework_1.Property.ShortText({
|
|
20
|
+
displayName: 'Task Name',
|
|
21
|
+
required: true,
|
|
22
|
+
}),
|
|
23
|
+
},
|
|
24
|
+
run(context) {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
const authentication = context.auth;
|
|
27
|
+
const accessToken = authentication.access_token;
|
|
28
|
+
const status = context.propsValue.status;
|
|
29
|
+
const task_name = context.propsValue.task_name;
|
|
30
|
+
const milestone = context.propsValue.milestone;
|
|
31
|
+
const response = (yield (0, common_1.callNitfyApi)(pieces_common_1.HttpMethod.POST, 'tasks', accessToken, {
|
|
32
|
+
name: task_name,
|
|
33
|
+
task_group_id: status,
|
|
34
|
+
milestone_id: milestone,
|
|
35
|
+
})).body;
|
|
36
|
+
return [response];
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=create-task.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-task.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/nifty/src/lib/actions/create-task.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,sCAAsD;AACtD,uCAAwC;AAE3B,QAAA,UAAU,GAAG,IAAA,+BAAY,EAAC;IACrC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,iBAAS;IACf,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,wBAAwB;IACrC,KAAK,EAAE;QACL,SAAS,EAAE,oBAAW,CAAC,SAAS;QAChC,OAAO,EAAE,oBAAW,CAAC,OAAO;QAC5B,MAAM,EAAE,oBAAW,CAAC,MAAM;QAC1B,SAAS,EAAE,oBAAW,CAAC,SAAS;QAChC,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YACpC,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC;YAChD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YACzC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC;YAE/C,MAAM,QAAQ,GAAG,CACf,MAAM,IAAA,qBAAY,EAAC,0BAAU,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE;gBACxD,IAAI,EAAE,SAAS;gBACf,aAAa,EAAE,MAAM;gBACrB,YAAY,EAAE,SAAS;aACxB,CAAC,CACH,CAAC,IAAI,CAAC;YAEP,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC;KAAA;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HttpMethod, HttpMessageBody, HttpResponse } from '@activepieces/pieces-common';
|
|
2
|
+
export declare const nitfyCommon: {
|
|
3
|
+
portfolio: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
4
|
+
project: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
5
|
+
status: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
6
|
+
milestone: import("@activepieces/pieces-framework").DropdownProperty<string, true>;
|
|
7
|
+
};
|
|
8
|
+
export declare function callNitfyApi<T extends HttpMessageBody>(method: HttpMethod, apiUrl: string, accessToken: string, body: any | undefined): Promise<HttpResponse<T>>;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.callNitfyApi = exports.nitfyCommon = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const pieces_framework_1 = require("@activepieces/pieces-framework");
|
|
6
|
+
const pieces_common_1 = require("@activepieces/pieces-common");
|
|
7
|
+
exports.nitfyCommon = {
|
|
8
|
+
portfolio: pieces_framework_1.Property.Dropdown({
|
|
9
|
+
displayName: 'Portfolio',
|
|
10
|
+
required: true,
|
|
11
|
+
refreshers: [],
|
|
12
|
+
options: ({ auth }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
13
|
+
const authentication = auth;
|
|
14
|
+
if (!authentication) {
|
|
15
|
+
return {
|
|
16
|
+
disabled: true,
|
|
17
|
+
placeholder: 'connect your account first',
|
|
18
|
+
options: [],
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const accessToken = authentication.access_token;
|
|
22
|
+
const response = (yield callNitfyApi(pieces_common_1.HttpMethod.GET, 'subteams', accessToken, undefined)).body;
|
|
23
|
+
return {
|
|
24
|
+
disabled: false,
|
|
25
|
+
options: response.subteams.map((team) => {
|
|
26
|
+
return {
|
|
27
|
+
label: team.name,
|
|
28
|
+
value: team.id,
|
|
29
|
+
};
|
|
30
|
+
}),
|
|
31
|
+
};
|
|
32
|
+
}),
|
|
33
|
+
}),
|
|
34
|
+
project: pieces_framework_1.Property.Dropdown({
|
|
35
|
+
displayName: 'Project',
|
|
36
|
+
required: true,
|
|
37
|
+
refreshers: ['portfolio'],
|
|
38
|
+
options: ({ auth, portfolio }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
39
|
+
const authentication = auth;
|
|
40
|
+
if (!authentication) {
|
|
41
|
+
return {
|
|
42
|
+
disabled: true,
|
|
43
|
+
placeholder: 'connect your account first',
|
|
44
|
+
options: [],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (!portfolio) {
|
|
48
|
+
return {
|
|
49
|
+
disabled: true,
|
|
50
|
+
placeholder: 'Select portfolio first',
|
|
51
|
+
options: [],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
const accessToken = authentication.access_token;
|
|
55
|
+
const response = (yield callNitfyApi(pieces_common_1.HttpMethod.GET, `projects`, accessToken, undefined)).body;
|
|
56
|
+
response.projects = response.projects.filter((project) => {
|
|
57
|
+
return project.subteam == portfolio;
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
disabled: false,
|
|
61
|
+
options: response.projects.map((project) => {
|
|
62
|
+
return {
|
|
63
|
+
label: project.name,
|
|
64
|
+
value: project.id,
|
|
65
|
+
};
|
|
66
|
+
}),
|
|
67
|
+
};
|
|
68
|
+
}),
|
|
69
|
+
}),
|
|
70
|
+
status: pieces_framework_1.Property.Dropdown({
|
|
71
|
+
displayName: 'Status',
|
|
72
|
+
required: true,
|
|
73
|
+
refreshers: ['project'],
|
|
74
|
+
options: ({ auth, project }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
75
|
+
const authentication = auth;
|
|
76
|
+
if (!authentication) {
|
|
77
|
+
return {
|
|
78
|
+
disabled: true,
|
|
79
|
+
placeholder: 'connect your account first',
|
|
80
|
+
options: [],
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
if (!project) {
|
|
84
|
+
return {
|
|
85
|
+
disabled: true,
|
|
86
|
+
placeholder: 'Select portfolio first',
|
|
87
|
+
options: [],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const accessToken = authentication.access_token;
|
|
91
|
+
const response = (yield callNitfyApi(pieces_common_1.HttpMethod.GET, `taskgroups?project_id=${project}&archived=false`, accessToken, undefined)).body;
|
|
92
|
+
return {
|
|
93
|
+
disabled: false,
|
|
94
|
+
options: response.items.map((list) => {
|
|
95
|
+
return {
|
|
96
|
+
label: list.name,
|
|
97
|
+
value: list.id,
|
|
98
|
+
};
|
|
99
|
+
}),
|
|
100
|
+
};
|
|
101
|
+
}),
|
|
102
|
+
}),
|
|
103
|
+
milestone: pieces_framework_1.Property.Dropdown({
|
|
104
|
+
displayName: 'Milestone',
|
|
105
|
+
required: true,
|
|
106
|
+
refreshers: ['project'],
|
|
107
|
+
options: ({ auth, project }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
108
|
+
const authentication = auth;
|
|
109
|
+
if (!authentication) {
|
|
110
|
+
return {
|
|
111
|
+
disabled: true,
|
|
112
|
+
placeholder: 'connect your account first',
|
|
113
|
+
options: [],
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (!project) {
|
|
117
|
+
return {
|
|
118
|
+
disabled: true,
|
|
119
|
+
placeholder: 'Select project first',
|
|
120
|
+
options: [],
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
const accessToken = authentication.access_token;
|
|
124
|
+
const response = (yield callNitfyApi(pieces_common_1.HttpMethod.GET, `milestones?project_id=${project}&is_list=true`, accessToken, undefined)).body;
|
|
125
|
+
return {
|
|
126
|
+
disabled: false,
|
|
127
|
+
options: response.items.map((list) => {
|
|
128
|
+
return {
|
|
129
|
+
label: list.name,
|
|
130
|
+
value: list.id,
|
|
131
|
+
};
|
|
132
|
+
}),
|
|
133
|
+
};
|
|
134
|
+
}),
|
|
135
|
+
}),
|
|
136
|
+
};
|
|
137
|
+
function callNitfyApi(method, apiUrl, accessToken, body) {
|
|
138
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
return yield pieces_common_1.httpClient.sendRequest({
|
|
140
|
+
method: method,
|
|
141
|
+
url: `https://openapi.niftypm.com/api/v1.0/${apiUrl}`,
|
|
142
|
+
authentication: {
|
|
143
|
+
type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
|
|
144
|
+
token: accessToken,
|
|
145
|
+
},
|
|
146
|
+
body: body,
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
exports.callNitfyApi = callNitfyApi;
|
|
151
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/pieces/nifty/src/lib/common/index.ts"],"names":[],"mappings":"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"}
|