@activepieces/piece-todos 0.0.1 → 0.0.2

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/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@activepieces/piece-todos",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "dependencies": {
5
5
  "@anthropic-ai/sdk": "0.33.1",
6
6
  "@sinclair/typebox": "0.34.11",
7
- "axios": "1.8.2",
7
+ "axios": "1.8.3",
8
8
  "axios-retry": "4.4.1",
9
9
  "deepmerge-ts": "7.1.0",
10
10
  "mime-types": "2.1.35",
@@ -15,7 +15,7 @@
15
15
  "zod": "3.23.8",
16
16
  "@activepieces/pieces-common": "0.4.3",
17
17
  "@activepieces/pieces-framework": "0.7.46",
18
- "@activepieces/shared": "0.10.158",
18
+ "@activepieces/shared": "0.10.163",
19
19
  "tslib": "1.14.1"
20
20
  },
21
21
  "overrides": {
package/src/index.js CHANGED
@@ -4,15 +4,17 @@ exports.todos = void 0;
4
4
  const pieces_framework_1 = require("@activepieces/pieces-framework");
5
5
  const create_todo_1 = require("./lib/actions/create-todo");
6
6
  const shared_1 = require("@activepieces/shared");
7
+ const wait_for_approval_1 = require("./lib/actions/wait-for-approval");
8
+ const create_todo_and_wait_1 = require("./lib/actions/create-todo-and-wait");
7
9
  exports.todos = (0, pieces_framework_1.createPiece)({
8
10
  displayName: 'Todos',
9
11
  description: 'Create tasks for project members to take actions, useful for approvals, reviews, and manual actions performed by humans',
10
12
  auth: pieces_framework_1.PieceAuth.None(),
11
- minimumSupportedRelease: '0.48.1',
13
+ minimumSupportedRelease: '0.49.0',
12
14
  logoUrl: 'https://cdn.activepieces.com/pieces/manual-tasks.svg',
13
15
  authors: ['hazemadelkhalel'],
14
16
  categories: [shared_1.PieceCategory.CORE, shared_1.PieceCategory.FLOW_CONTROL],
15
- actions: [create_todo_1.createTodo],
17
+ actions: [create_todo_1.createTodo, wait_for_approval_1.waitForApproval, create_todo_and_wait_1.createTodoAndWait],
16
18
  triggers: [],
17
19
  });
18
20
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/todos/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,2DAAuD;AACvD,iDAAqD;AAExC,QAAA,KAAK,GAAG,IAAA,8BAAW,EAAC;IAC/B,WAAW,EAAE,OAAO;IACpB,WAAW,EACT,yHAAyH;IAC3H,IAAI,EAAE,4BAAS,CAAC,IAAI,EAAE;IACtB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,sDAAsD;IAC/D,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,UAAU,EAAE,CAAC,sBAAa,CAAC,IAAI,EAAE,sBAAa,CAAC,YAAY,CAAC;IAC5D,OAAO,EAAE,CAAC,wBAAU,CAAC;IACrB,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/pieces/community/todos/src/index.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AACxE,2DAAuD;AACvD,iDAAqD;AACrD,uEAAkE;AAClE,6EAAuE;AAE1D,QAAA,KAAK,GAAG,IAAA,8BAAW,EAAC;IAC/B,WAAW,EAAE,OAAO;IACpB,WAAW,EACT,yHAAyH;IAC3H,IAAI,EAAE,4BAAS,CAAC,IAAI,EAAE;IACtB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,sDAAsD;IAC/D,OAAO,EAAE,CAAC,iBAAiB,CAAC;IAC5B,UAAU,EAAE,CAAC,sBAAa,CAAC,IAAI,EAAE,sBAAa,CAAC,YAAY,CAAC;IAC5D,OAAO,EAAE,CAAC,wBAAU,EAAE,mCAAe,EAAE,wCAAiB,CAAC;IACzD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const createTodoAndWait: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").PieceAuthProperty, {
2
+ title: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ description: import("@activepieces/pieces-framework").LongTextProperty<false>;
4
+ assigneeId: import("@activepieces/pieces-framework").DropdownProperty<string, false>;
5
+ statusOptions: import("@activepieces/pieces-framework").ArrayProperty<true>;
6
+ }>;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTodoAndWait = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const shared_1 = require("@activepieces/shared");
7
+ const utils_1 = require("../utils/utils");
8
+ exports.createTodoAndWait = (0, pieces_framework_1.createAction)({
9
+ name: 'createTodoAndWait',
10
+ displayName: 'Create Todo and Wait',
11
+ description: 'Creates a todo for a user and wait for their response or take action.',
12
+ props: utils_1.createTodoProps,
13
+ errorHandlingOptions: {
14
+ continueOnFailure: {
15
+ hide: true,
16
+ },
17
+ retryOnFailure: {
18
+ hide: true,
19
+ },
20
+ },
21
+ test(context) {
22
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
+ if (context.executionType === shared_1.ExecutionType.BEGIN) {
24
+ context.run.pause({
25
+ pauseMetadata: {
26
+ type: shared_1.PauseType.WEBHOOK,
27
+ response: {},
28
+ },
29
+ });
30
+ const response = yield (0, utils_1.sendTodoApproval)(context, true);
31
+ return response.body;
32
+ }
33
+ else {
34
+ return {
35
+ status: context.resumePayload.queryParams['status'],
36
+ };
37
+ }
38
+ });
39
+ },
40
+ run(context) {
41
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
42
+ if (context.executionType === shared_1.ExecutionType.BEGIN) {
43
+ context.run.pause({
44
+ pauseMetadata: {
45
+ type: shared_1.PauseType.WEBHOOK,
46
+ response: {},
47
+ },
48
+ });
49
+ const response = yield (0, utils_1.sendTodoApproval)(context, false);
50
+ return response.body;
51
+ }
52
+ else {
53
+ return {
54
+ status: context.resumePayload.queryParams['status'],
55
+ };
56
+ }
57
+ });
58
+ },
59
+ });
60
+ //# sourceMappingURL=create-todo-and-wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-todo-and-wait.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/todos/src/lib/actions/create-todo-and-wait.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,iDAG8B;AAC9B,0CAAmE;AAEtD,QAAA,iBAAiB,GAAG,IAAA,+BAAY,EAAC;IAC5C,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,sBAAsB;IACnC,WAAW,EACT,uEAAuE;IACzE,KAAK,EAAE,uBAAe;IACtB,oBAAoB,EAAE;QACpB,iBAAiB,EAAE;YACjB,IAAI,EAAE,IAAI;SACX;QACD,cAAc,EAAE;YACd,IAAI,EAAE,IAAI;SACX;KACF;IACK,IAAI,CAAC,OAAO;;YAChB,IAAI,OAAO,CAAC,aAAa,KAAK,sBAAa,CAAC,KAAK,EAAE,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;oBAChB,aAAa,EAAE;wBACb,IAAI,EAAE,kBAAS,CAAC,OAAO;wBACvB,QAAQ,EAAE,EAAE;qBACb;iBACF,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvD,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC;iBACpD,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YACf,IAAI,OAAO,CAAC,aAAa,KAAK,sBAAa,CAAC,KAAK,EAAE,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;oBAChB,aAAa,EAAE;wBACb,IAAI,EAAE,kBAAS,CAAC,OAAO;wBACvB,QAAQ,EAAE,EAAE;qBACb;iBACF,CAAC,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBACxD,OAAO,QAAQ,CAAC,IAAI,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC;iBACpD,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export declare const createTodo: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").PieceAuthProperty, {
2
- routerMarkdown: import("dist/packages/pieces/community/framework/src/lib/property/input/markdown-property").MarkDownProperty;
3
2
  title: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
3
  description: import("@activepieces/pieces-framework").LongTextProperty<false>;
5
4
  assigneeId: import("@activepieces/pieces-framework").DropdownProperty<string, false>;
@@ -3,69 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createTodo = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const pieces_common_1 = require("@activepieces/pieces-common");
7
- const shared_1 = require("@activepieces/shared");
8
- const routerMarkdown = `
9
- Use the **Router piece** to create different paths based on the todo's status.
10
- `;
6
+ const utils_1 = require("../utils/utils");
11
7
  exports.createTodo = (0, pieces_framework_1.createAction)({
12
8
  name: 'createTodo',
13
9
  displayName: 'Create Todo',
14
10
  description: 'Creates a todo for a user, requiring them to respond or take action.',
15
- props: {
16
- routerMarkdown: pieces_framework_1.Property.MarkDown({
17
- value: routerMarkdown,
18
- variant: shared_1.MarkdownVariant.INFO,
19
- }),
20
- title: pieces_framework_1.Property.ShortText({
21
- displayName: 'Title',
22
- required: true,
23
- }),
24
- description: pieces_framework_1.Property.LongText({
25
- displayName: 'Description',
26
- description: 'These details will be displayed for the assignee. Add the full context so they can take proper action, You can also use markdown formatting.',
27
- required: false,
28
- }),
29
- assigneeId: pieces_framework_1.Property.Dropdown({
30
- displayName: 'Assignee',
31
- required: false,
32
- options: (_, context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
33
- const baseApiUrl = context.server.publicUrl;
34
- const apiKey = context.server.token;
35
- const users = yield listAssignee(baseApiUrl, apiKey);
36
- console.log('HELLLOOOO');
37
- console.log(JSON.stringify(users, null, 2));
38
- return {
39
- options: users.data.map((user) => ({
40
- value: user.id,
41
- label: `${user.firstName} ${user.lastName}`,
42
- })),
43
- };
44
- }),
45
- refreshers: [],
46
- }),
47
- statusOptions: pieces_framework_1.Property.Array({
48
- displayName: 'Status Options',
49
- required: true,
50
- properties: {
51
- name: pieces_framework_1.Property.ShortText({
52
- displayName: 'Name',
53
- required: true,
54
- }),
55
- variant: pieces_framework_1.Property.StaticDropdown({
56
- displayName: 'Variant',
57
- required: true,
58
- defaultValue: shared_1.STATUS_VARIANT.POSITIVE,
59
- options: {
60
- options: Object.values(shared_1.STATUS_VARIANT).map((variant) => ({
61
- value: variant,
62
- label: variant,
63
- })),
64
- },
65
- }),
66
- },
67
- }),
68
- },
11
+ props: utils_1.createTodoProps,
69
12
  errorHandlingOptions: {
70
13
  continueOnFailure: {
71
14
  hide: true,
@@ -76,85 +19,29 @@ exports.createTodo = (0, pieces_framework_1.createAction)({
76
19
  },
77
20
  test(context) {
78
21
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
79
- if (context.executionType === shared_1.ExecutionType.BEGIN) {
80
- context.run.pause({
81
- pauseMetadata: {
82
- type: shared_1.PauseType.WEBHOOK,
83
- response: {},
84
- },
85
- });
86
- const response = yield sendTodoApproval(context, true);
87
- return response.body;
88
- }
89
- else {
90
- return {
91
- status: context.resumePayload.queryParams['status'],
92
- };
93
- }
22
+ const response = yield (0, utils_1.sendTodoApproval)(context, true);
23
+ const links = context.propsValue.statusOptions.map((option) => ({
24
+ name: option.name,
25
+ url: (0, utils_1.constructTodoUrl)(context.server.publicUrl, response.body.id, option.name, true),
26
+ }));
27
+ return {
28
+ id: response.body.id,
29
+ links,
30
+ };
94
31
  });
95
32
  },
96
33
  run(context) {
97
34
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
- if (context.executionType === shared_1.ExecutionType.BEGIN) {
99
- context.run.pause({
100
- pauseMetadata: {
101
- type: shared_1.PauseType.WEBHOOK,
102
- response: {},
103
- },
104
- });
105
- const response = yield sendTodoApproval(context, false);
106
- return response.body;
107
- }
108
- else {
109
- return {
110
- status: context.resumePayload.queryParams['status'],
111
- };
112
- }
35
+ const response = yield (0, utils_1.sendTodoApproval)(context, false);
36
+ const links = context.propsValue.statusOptions.map((option) => ({
37
+ name: option.name,
38
+ url: (0, utils_1.constructTodoUrl)(context.server.publicUrl, response.body.id, option.name, false),
39
+ }));
40
+ return {
41
+ id: response.body.id,
42
+ links,
43
+ };
113
44
  });
114
45
  },
115
46
  });
116
- function sendTodoApproval(context, isTest) {
117
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
118
- var _a, _b;
119
- const requestBody = {
120
- title: context.propsValue.title,
121
- description: (_a = context.propsValue.description) !== null && _a !== void 0 ? _a : undefined,
122
- statusOptions: context.propsValue.statusOptions.map((option) => ({
123
- name: option.name,
124
- description: option.description,
125
- variant: option.variant,
126
- })),
127
- flowId: context.flows.current.id,
128
- runId: isTest ? undefined : context.run.id,
129
- assigneeId: (_b = context.propsValue.assigneeId) !== null && _b !== void 0 ? _b : undefined,
130
- approvalUrl: context.generateResumeUrl({
131
- queryParams: { action: 'approve' },
132
- }),
133
- };
134
- const request = {
135
- method: pieces_common_1.HttpMethod.POST,
136
- url: `${context.server.publicUrl}v1/todos`,
137
- body: requestBody,
138
- authentication: {
139
- type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
140
- token: context.server.token,
141
- },
142
- };
143
- return yield pieces_common_1.httpClient.sendRequest(request);
144
- });
145
- }
146
- function listAssignee(publicUrl, token) {
147
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
148
- const request = {
149
- method: pieces_common_1.HttpMethod.GET,
150
- url: `${publicUrl}v1/todos/assignees`,
151
- authentication: {
152
- type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
153
- token: token,
154
- },
155
- };
156
- const res = yield pieces_common_1.httpClient.sendRequest(request);
157
- return res.body;
158
- });
159
- }
160
47
  //# sourceMappingURL=create-todo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-todo.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/todos/src/lib/actions/create-todo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-todo.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/todos/src/lib/actions/create-todo.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,0CAAqF;AAExE,QAAA,UAAU,GAAG,IAAA,+BAAY,EAAC;IACrC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,aAAa;IAC1B,WAAW,EACT,sEAAsE;IACxE,KAAK,EAAE,uBAAe;IACtB,oBAAoB,EAAE;QACpB,iBAAiB,EAAE;YACjB,IAAI,EAAE,IAAI;SACX;QACD,cAAc,EAAE;YACd,IAAI,EAAE,IAAI;SACX;KACF;IACK,IAAI,CAAC,OAAO;;YAChB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;gBACnE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,IAAA,wBAAgB,EAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;aACrF,CAAC,CAAC,CAAC;YACJ,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACpB,KAAK;aACN,CAAC;QACJ,CAAC;KAAA;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAgB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;gBACnE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,GAAG,EAAE,IAAA,wBAAgB,EAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;aACtF,CAAC,CAAC,CAAC;YACJ,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACpB,KAAK;aACN,CAAC;QACJ,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const waitForApproval: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").PieceAuthProperty, {
2
+ taskId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ }>;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.waitForApproval = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const pieces_common_2 = require("@activepieces/pieces-common");
7
+ const pieces_common_3 = require("@activepieces/pieces-common");
8
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
9
+ const shared_1 = require("@activepieces/shared");
10
+ const shared_2 = require("@activepieces/shared");
11
+ exports.waitForApproval = (0, pieces_framework_1.createAction)({
12
+ name: 'wait_for_approval',
13
+ displayName: 'Wait for Approval',
14
+ description: 'Pauses the flow and wait for the approval from the user',
15
+ props: {
16
+ taskId: pieces_framework_1.Property.ShortText({
17
+ displayName: 'Task ID',
18
+ description: 'The ID of the task to wait for approval',
19
+ required: true,
20
+ }),
21
+ },
22
+ errorHandlingOptions: {
23
+ continueOnFailure: {
24
+ hide: true,
25
+ },
26
+ retryOnFailure: {
27
+ hide: true,
28
+ },
29
+ },
30
+ test(ctx) {
31
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
32
+ const request = {
33
+ method: pieces_common_3.HttpMethod.GET,
34
+ url: `${ctx.server.publicUrl}v1/todos/${ctx.propsValue.taskId}`,
35
+ authentication: {
36
+ type: pieces_common_2.AuthenticationType.BEARER_TOKEN,
37
+ token: ctx.server.token,
38
+ },
39
+ };
40
+ const response = yield pieces_common_1.httpClient.sendRequest(request);
41
+ return {
42
+ status: response.body.status.name,
43
+ };
44
+ });
45
+ },
46
+ run(ctx) {
47
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
48
+ if (ctx.executionType === shared_2.ExecutionType.BEGIN) {
49
+ ctx.run.pause({
50
+ pauseMetadata: {
51
+ type: shared_1.PauseType.WEBHOOK,
52
+ response: {}
53
+ },
54
+ });
55
+ return undefined;
56
+ }
57
+ else {
58
+ return {
59
+ status: ctx.resumePayload.queryParams['status'],
60
+ };
61
+ }
62
+ });
63
+ },
64
+ });
65
+ //# sourceMappingURL=wait-for-approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-approval.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/todos/src/lib/actions/wait-for-approval.ts"],"names":[],"mappings":";;;;AAAA,+DAAyD;AACzD,+DAAiE;AAEjE,+DAAyD;AACzD,qEAAwE;AACxE,iDAAiD;AACjD,iDAAqD;AAExC,QAAA,eAAe,GAAG,IAAA,+BAAY,EAAC;IAC1C,IAAI,EAAE,mBAAmB;IACzB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,yDAAyD;IACtE,KAAK,EAAE;QACL,MAAM,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACzB,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACD,oBAAoB,EAAE;QACpB,iBAAiB,EAAE;YACjB,IAAI,EAAE,IAAI;SACX;QACD,cAAc,EAAE;YACd,IAAI,EAAE,IAAI;SACX;KACF;IACK,IAAI,CAAC,GAAG;;YACZ,MAAM,OAAO,GAAgB;gBAC3B,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,YAAY,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE;gBAC/D,cAAc,EAAE;oBACd,IAAI,EAAE,kCAAkB,CAAC,YAAY;oBACrC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;iBACxB;aACF,CAAC;YACF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvD,OAAO;gBACL,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;aAClC,CAAC;QACJ,CAAC;KAAA;IACK,GAAG,CAAC,GAAG;;YACX,IAAI,GAAG,CAAC,aAAa,KAAK,sBAAa,CAAC,KAAK,EAAE,CAAC;gBAC9C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;oBACZ,aAAa,EAAE;wBACb,IAAI,EAAE,kBAAS,CAAC,OAAO;wBACvB,QAAQ,EAAE,EAAE;qBACb;iBACF,CAAC,CAAC;gBAEH,OAAO,SAAS,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,MAAM,EAAE,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC;iBAChD,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { SeekPage, STATUS_VARIANT, UserWithMetaInformation } from "@activepieces/shared";
2
+ export declare const createTodoProps: {
3
+ title: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ description: import("@activepieces/pieces-framework").LongTextProperty<false>;
5
+ assigneeId: import("@activepieces/pieces-framework").DropdownProperty<string, false>;
6
+ statusOptions: import("@activepieces/pieces-framework").ArrayProperty<true>;
7
+ };
8
+ export declare function constructTodoUrl(publicUrl: string, todoId: string, status: string, isTest: boolean): string;
9
+ type ApprovalParms = {
10
+ propsValue: {
11
+ title: string;
12
+ description?: string;
13
+ statusOptions: unknown[];
14
+ assigneeId?: string;
15
+ };
16
+ flows: {
17
+ current: {
18
+ id: string;
19
+ };
20
+ };
21
+ run: {
22
+ id: string;
23
+ };
24
+ server: {
25
+ publicUrl: string;
26
+ token: string;
27
+ };
28
+ generateResumeUrl: (options: {
29
+ queryParams: Record<string, any>;
30
+ }) => string;
31
+ };
32
+ export declare function sendTodoApproval(context: ApprovalParms, isTest: boolean): Promise<import("@activepieces/pieces-common").HttpResponse<{
33
+ description?: string | null | undefined;
34
+ assigneeId?: string | null | undefined;
35
+ resolveUrl?: string | null | undefined;
36
+ assignee?: {
37
+ platformId?: string | null | undefined;
38
+ externalId?: string | null | undefined;
39
+ id: string;
40
+ created: string;
41
+ updated: string;
42
+ email: string;
43
+ platformRole: import("@activepieces/shared").PlatformRole;
44
+ status: import("@activepieces/shared").UserStatus;
45
+ firstName: string;
46
+ lastName: string;
47
+ } | null | undefined;
48
+ id: string;
49
+ status: {
50
+ description?: string | null | undefined;
51
+ name: string;
52
+ variant: STATUS_VARIANT;
53
+ };
54
+ platformId: string;
55
+ created: string;
56
+ updated: string;
57
+ title: string;
58
+ statusOptions: {
59
+ description?: string | null | undefined;
60
+ name: string;
61
+ variant: STATUS_VARIANT;
62
+ }[];
63
+ flowId: string;
64
+ runId: string;
65
+ projectId: string;
66
+ }>>;
67
+ export declare function listAssignee(publicUrl: string, token: string): Promise<SeekPage<UserWithMetaInformation>>;
68
+ export {};
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTodoProps = void 0;
4
+ exports.constructTodoUrl = constructTodoUrl;
5
+ exports.sendTodoApproval = sendTodoApproval;
6
+ exports.listAssignee = listAssignee;
7
+ const tslib_1 = require("tslib");
8
+ const pieces_common_1 = require("@activepieces/pieces-common");
9
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
10
+ const shared_1 = require("@activepieces/shared");
11
+ exports.createTodoProps = {
12
+ title: pieces_framework_1.Property.ShortText({
13
+ displayName: 'Title',
14
+ required: true,
15
+ }),
16
+ description: pieces_framework_1.Property.LongText({
17
+ displayName: 'Description',
18
+ description: 'These details will be displayed for the assignee. Add the full context so they can take proper action, You can also use markdown formatting.',
19
+ required: false,
20
+ }),
21
+ assigneeId: pieces_framework_1.Property.Dropdown({
22
+ displayName: 'Assignee',
23
+ required: false,
24
+ options: (_, context) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
25
+ const baseApiUrl = context.server.publicUrl;
26
+ const apiKey = context.server.token;
27
+ const users = yield listAssignee(baseApiUrl, apiKey);
28
+ return {
29
+ options: users.data.map((user) => ({
30
+ value: user.id,
31
+ label: `${user.firstName} ${user.lastName}`,
32
+ })),
33
+ };
34
+ }),
35
+ refreshers: [],
36
+ }),
37
+ statusOptions: pieces_framework_1.Property.Array({
38
+ displayName: 'Status Options',
39
+ required: true,
40
+ defaultValue: [
41
+ {
42
+ name: 'Accepted',
43
+ variant: shared_1.STATUS_VARIANT.POSITIVE,
44
+ },
45
+ {
46
+ name: 'Rejected',
47
+ variant: shared_1.STATUS_VARIANT.NEGATIVE,
48
+ },
49
+ ],
50
+ properties: {
51
+ name: pieces_framework_1.Property.ShortText({
52
+ displayName: 'Name',
53
+ required: true,
54
+ }),
55
+ variant: pieces_framework_1.Property.StaticDropdown({
56
+ displayName: 'Variant',
57
+ required: true,
58
+ defaultValue: shared_1.STATUS_VARIANT.POSITIVE,
59
+ options: {
60
+ options: Object.values(shared_1.STATUS_VARIANT).map((variant) => ({
61
+ value: variant,
62
+ label: variant,
63
+ })),
64
+ },
65
+ }),
66
+ },
67
+ }),
68
+ };
69
+ function constructTodoUrl(publicUrl, todoId, status, isTest) {
70
+ return `${publicUrl}v1/todos/${todoId}/resolve?status=${status}&isTest=${isTest}`;
71
+ }
72
+ function sendTodoApproval(context, isTest) {
73
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
74
+ var _a, _b;
75
+ const requestBody = {
76
+ title: context.propsValue.title,
77
+ description: (_a = context.propsValue.description) !== null && _a !== void 0 ? _a : undefined,
78
+ statusOptions: context.propsValue.statusOptions.map((option) => ({
79
+ name: option.name,
80
+ description: option.description,
81
+ variant: option.variant,
82
+ })),
83
+ flowId: context.flows.current.id,
84
+ runId: isTest ? undefined : context.run.id,
85
+ assigneeId: (_b = context.propsValue.assigneeId) !== null && _b !== void 0 ? _b : undefined,
86
+ resolveUrl: context.generateResumeUrl({
87
+ queryParams: {},
88
+ }),
89
+ };
90
+ return yield pieces_common_1.httpClient.sendRequest({
91
+ method: pieces_common_1.HttpMethod.POST,
92
+ url: `${context.server.publicUrl}v1/todos`,
93
+ body: requestBody,
94
+ authentication: {
95
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
96
+ token: context.server.token,
97
+ },
98
+ });
99
+ });
100
+ }
101
+ function listAssignee(publicUrl, token) {
102
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
103
+ const request = {
104
+ method: pieces_common_1.HttpMethod.GET,
105
+ url: `${publicUrl}v1/todos/assignees`,
106
+ authentication: {
107
+ type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
108
+ token: token,
109
+ },
110
+ };
111
+ const res = yield pieces_common_1.httpClient.sendRequest(request);
112
+ return res.body;
113
+ });
114
+ }
115
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/todos/src/lib/utils/utils.ts"],"names":[],"mappings":"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"}