@activepieces/piece-weekdone 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.
Files changed (37) hide show
  1. package/package.json +17 -0
  2. package/src/index.d.ts +2 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +41 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/actions/create-item.d.ts +12 -0
  7. package/src/lib/actions/create-item.d.ts.map +1 -0
  8. package/src/lib/actions/create-item.js +130 -0
  9. package/src/lib/actions/create-item.js.map +1 -0
  10. package/src/lib/actions/create-objective.d.ts +7 -0
  11. package/src/lib/actions/create-objective.d.ts.map +1 -0
  12. package/src/lib/actions/create-objective.js +131 -0
  13. package/src/lib/actions/create-objective.js.map +1 -0
  14. package/src/lib/actions/update-item.d.ts +10 -0
  15. package/src/lib/actions/update-item.d.ts.map +1 -0
  16. package/src/lib/actions/update-item.js +150 -0
  17. package/src/lib/actions/update-item.js.map +1 -0
  18. package/src/lib/actions/update-objective.d.ts +7 -0
  19. package/src/lib/actions/update-objective.d.ts.map +1 -0
  20. package/src/lib/actions/update-objective.js +116 -0
  21. package/src/lib/actions/update-objective.js.map +1 -0
  22. package/src/lib/auth.d.ts +2 -0
  23. package/src/lib/auth.d.ts.map +1 -0
  24. package/src/lib/auth.js +11 -0
  25. package/src/lib/auth.js.map +1 -0
  26. package/src/lib/common/index.d.ts +33 -0
  27. package/src/lib/common/index.d.ts.map +1 -0
  28. package/src/lib/common/index.js +79 -0
  29. package/src/lib/common/index.js.map +1 -0
  30. package/src/lib/triggers/new-item.d.ts +15 -0
  31. package/src/lib/triggers/new-item.d.ts.map +1 -0
  32. package/src/lib/triggers/new-item.js +109 -0
  33. package/src/lib/triggers/new-item.js.map +1 -0
  34. package/src/lib/triggers/new-objective.d.ts +15 -0
  35. package/src/lib/triggers/new-objective.d.ts.map +1 -0
  36. package/src/lib/triggers/new-objective.js +106 -0
  37. package/src/lib/triggers/new-objective.js.map +1 -0
package/package.json ADDED
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "@activepieces/piece-weekdone",
3
+ "version": "0.0.1",
4
+ "type": "commonjs",
5
+ "main": "./src/index.js",
6
+ "types": "./src/index.d.ts",
7
+ "dependencies": {
8
+ "@activepieces/pieces-common": "0.12.3",
9
+ "@activepieces/pieces-framework": "0.28.1",
10
+ "@activepieces/shared": "0.76.6",
11
+ "tslib": "2.6.2"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc -p tsconfig.lib.json && cp package.json dist/",
15
+ "lint": "eslint 'src/**/*.ts'"
16
+ }
17
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export declare const weekdone: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,QAAQ,+JAuBnB,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.weekdone = 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 shared_1 = require("@activepieces/shared");
8
+ const auth_1 = require("./lib/auth");
9
+ const create_item_1 = require("./lib/actions/create-item");
10
+ const update_item_1 = require("./lib/actions/update-item");
11
+ const create_objective_1 = require("./lib/actions/create-objective");
12
+ const update_objective_1 = require("./lib/actions/update-objective");
13
+ const new_item_1 = require("./lib/triggers/new-item");
14
+ const new_objective_1 = require("./lib/triggers/new-objective");
15
+ exports.weekdone = (0, pieces_framework_1.createPiece)({
16
+ displayName: 'Weekdone',
17
+ description: 'OKR & weekly status reporting tool for teams.',
18
+ auth: auth_1.weekdoneAuth,
19
+ minimumSupportedRelease: '0.36.1',
20
+ logoUrl: 'https://cdn.activepieces.com/pieces/weekdone.png',
21
+ categories: [shared_1.PieceCategory.PRODUCTIVITY],
22
+ authors: ['onyedikachi-david'],
23
+ actions: [
24
+ create_item_1.createItemAction,
25
+ update_item_1.updateItemAction,
26
+ create_objective_1.createObjectiveAction,
27
+ update_objective_1.updateObjectiveAction,
28
+ (0, pieces_common_1.createCustomApiCallAction)({
29
+ baseUrl: () => 'https://api.weekdone.com/1',
30
+ auth: auth_1.weekdoneAuth,
31
+ authMapping: (auth) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
32
+ return ({
33
+ token: auth.access_token,
34
+ });
35
+ }),
36
+ authLocation: 'queryParams',
37
+ }),
38
+ ],
39
+ triggers: [new_item_1.newItemTrigger, new_objective_1.newObjectiveTrigger],
40
+ });
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAAkF;AAClF,+DAAwE;AACxE,iDAAqD;AACrD,qCAA0C;AAC1C,2DAA6D;AAC7D,2DAA6D;AAC7D,qEAAuE;AACvE,qEAAuE;AACvE,sDAAyD;AACzD,gEAAmE;AAEtD,QAAA,QAAQ,GAAG,IAAA,8BAAW,EAAC;IAClC,WAAW,EAAE,UAAU;IACvB,WAAW,EAAE,+CAA+C;IAC5D,IAAI,EAAE,mBAAY;IAClB,uBAAuB,EAAE,QAAQ;IACjC,OAAO,EAAE,kDAAkD;IAC3D,UAAU,EAAE,CAAC,sBAAa,CAAC,YAAY,CAAC;IACxC,OAAO,EAAE,CAAC,mBAAmB,CAAC;IAC9B,OAAO,EAAE;QACP,8BAAgB;QAChB,8BAAgB;QAChB,wCAAqB;QACrB,wCAAqB;QACrB,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,GAAG,EAAE,CAAC,4BAA4B;YAC3C,IAAI,EAAE,mBAAY;YAClB,WAAW,EAAE,CAAO,IAAI,EAAE,EAAE;gBAAC,OAAA,CAAC;oBAC5B,KAAK,EAAG,IAA4B,CAAC,YAAY;iBAClD,CAAC,CAAA;cAAA;YACF,YAAY,EAAE,aAAa;SAC5B,CAAC;KACH;IACD,QAAQ,EAAE,CAAC,yBAAc,EAAE,mCAAmB,CAAC;CAChD,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ export declare const createItemAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
2
+ description: import("@activepieces/pieces-framework").LongTextProperty<true>;
3
+ type_id: import("@activepieces/pieces-framework").StaticDropdownProperty<number, true>;
4
+ period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
5
+ user_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
6
+ team_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
7
+ priority: import("@activepieces/pieces-framework").StaticDropdownProperty<number, false>;
8
+ due_on: import("@activepieces/pieces-framework").ShortTextProperty<false>;
9
+ is_private: import("@activepieces/pieces-framework").CheckboxProperty<false>;
10
+ source_id: import("@activepieces/pieces-framework").ShortTextProperty<false>;
11
+ }>;
12
+ //# sourceMappingURL=create-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-item.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-item.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,gBAAgB;;;;;;;;;;EAkI3B,CAAC"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createItemAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.createItemAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.weekdoneAuth,
11
+ name: 'create_item',
12
+ displayName: 'Create New Item',
13
+ description: 'Creates a new report item in Weekdone.',
14
+ props: {
15
+ description: pieces_framework_1.Property.LongText({
16
+ displayName: 'Description',
17
+ description: 'The text content of the report item.',
18
+ required: true,
19
+ }),
20
+ type_id: pieces_framework_1.Property.StaticDropdown({
21
+ displayName: 'Report Category',
22
+ description: 'The category this item belongs to in your weekly report. Custom category IDs (4 and above) are available via the Custom API Call action.',
23
+ required: true,
24
+ defaultValue: 2,
25
+ options: {
26
+ options: [
27
+ { label: 'Plans', value: 2 },
28
+ { label: 'Progress', value: 1 },
29
+ { label: 'Problems', value: 3 },
30
+ { label: 'Plans on Hold', value: 0 },
31
+ ],
32
+ },
33
+ }),
34
+ period: pieces_framework_1.Property.ShortText({
35
+ displayName: 'Week',
36
+ description: 'The report week to add this item to, in YYYYWW format (e.g. "202403" for week 3 of 2024). Leave empty to use the current week.',
37
+ required: false,
38
+ }),
39
+ user_id: common_1.weekdoneCommon.userDropdown({
40
+ displayName: 'Assign To',
41
+ description: 'The user to assign this item to. Leave empty to assign it to yourself.',
42
+ required: false,
43
+ }),
44
+ team_id: common_1.weekdoneCommon.teamDropdown({
45
+ displayName: 'Team',
46
+ description: 'The team to add this item to. Leave empty to use your primary team.',
47
+ required: false,
48
+ }),
49
+ priority: pieces_framework_1.Property.StaticDropdown({
50
+ displayName: 'Priority',
51
+ description: 'The priority level for this item.',
52
+ required: false,
53
+ defaultValue: 0,
54
+ options: {
55
+ options: [
56
+ { label: 'Not specified', value: 0 },
57
+ { label: 'Green (low)', value: 1 },
58
+ { label: 'Amber (medium)', value: 2 },
59
+ { label: 'Red (high)', value: 3 },
60
+ ],
61
+ },
62
+ }),
63
+ due_on: pieces_framework_1.Property.ShortText({
64
+ displayName: 'Due Date',
65
+ description: 'The due date for this item in YYYY-MM-DD format (e.g. "2024-03-15"). Leave empty for no due date.',
66
+ required: false,
67
+ }),
68
+ is_private: pieces_framework_1.Property.Checkbox({
69
+ displayName: 'Private',
70
+ description: 'If enabled, only you can see this item. If disabled (default), the item is visible to your team.',
71
+ required: false,
72
+ defaultValue: false,
73
+ }),
74
+ source_id: pieces_framework_1.Property.ShortText({
75
+ displayName: 'External Source ID',
76
+ description: 'The ID of this item in an external system (e.g. a JIRA ticket number or Asana task ID). Maximum 50 characters.',
77
+ required: false,
78
+ }),
79
+ },
80
+ run(context) {
81
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
82
+ var _a, _b, _c, _d, _e;
83
+ const { description, type_id, period, user_id, team_id, priority, due_on, is_private, source_id, } = context.propsValue;
84
+ const token = context.auth.access_token;
85
+ const body = {
86
+ description,
87
+ type_id,
88
+ };
89
+ if (period)
90
+ body['period'] = period;
91
+ if (user_id)
92
+ body['user_id'] = user_id;
93
+ if (team_id !== null && team_id !== undefined)
94
+ body['team_id'] = team_id;
95
+ if (priority !== null && priority !== undefined)
96
+ body['priority'] = priority;
97
+ if (due_on)
98
+ body['due_on'] = due_on;
99
+ if (is_private !== null && is_private !== undefined)
100
+ body['private'] = is_private ? 1 : 0;
101
+ if (source_id)
102
+ body['source_id'] = source_id;
103
+ const response = yield pieces_common_1.httpClient.sendRequest({
104
+ method: pieces_common_1.HttpMethod.POST,
105
+ url: `https://api.weekdone.com/1/item?token=${token}`,
106
+ body,
107
+ });
108
+ // Weekdone docs don't specify the create response shape; try common keys first.
109
+ const item = ((_b = (_a = response.body['item']) !== null && _a !== void 0 ? _a : response.body['data']) !== null && _b !== void 0 ? _b : response.body);
110
+ return {
111
+ id: item.id,
112
+ description: item.description,
113
+ type_id: item.type_id,
114
+ inserted: item.inserted,
115
+ due_on: (_c = item.due_on) !== null && _c !== void 0 ? _c : null,
116
+ priority: item.priority,
117
+ user_id: item.user_id,
118
+ team_id: item.team_id,
119
+ from_id: (_d = item.from_id) !== null && _d !== void 0 ? _d : null,
120
+ source: item.source,
121
+ source_id: (_e = item.source_id) !== null && _e !== void 0 ? _e : null,
122
+ is_private: item.private,
123
+ position: item.nr,
124
+ like_count: item.likecount,
125
+ comment_count: item.commentcount,
126
+ };
127
+ });
128
+ },
129
+ });
130
+ //# sourceMappingURL=create-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-item.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-item.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const createObjectiveAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
2
+ description: import("@activepieces/pieces-framework").LongTextProperty<true>;
3
+ type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
4
+ level_details: import("@activepieces/pieces-framework").DynamicProperties<true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
5
+ period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
6
+ }>;
7
+ //# sourceMappingURL=create-objective.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-objective.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/create-objective.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,qBAAqB;;;;;EA2HhC,CAAC"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createObjectiveAction = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ exports.createObjectiveAction = (0, pieces_framework_1.createAction)({
10
+ auth: auth_1.weekdoneAuth,
11
+ name: 'create_objective',
12
+ displayName: 'Create New Objective',
13
+ description: 'Creates a new OKR objective in Weekdone.',
14
+ props: {
15
+ description: pieces_framework_1.Property.LongText({
16
+ displayName: 'Description',
17
+ description: 'The text of the objective (e.g. "Grow revenue by 20% this quarter").',
18
+ required: true,
19
+ }),
20
+ type: pieces_framework_1.Property.StaticDropdown({
21
+ displayName: 'Objective Level',
22
+ description: 'The level this objective applies to. Company objectives apply to the whole organisation; Department, Team, and Personal are scoped to a specific group or individual.',
23
+ required: true,
24
+ defaultValue: 'company',
25
+ options: {
26
+ options: [
27
+ { label: 'Company', value: 'company' },
28
+ { label: 'Department', value: 'department' },
29
+ { label: 'Team', value: 'team' },
30
+ { label: 'Personal (User)', value: 'user' },
31
+ ],
32
+ },
33
+ }),
34
+ level_details: pieces_framework_1.Property.DynamicProperties({
35
+ auth: auth_1.weekdoneAuth,
36
+ displayName: 'Level Details',
37
+ description: 'Additional fields required for the selected objective level.',
38
+ required: true,
39
+ refreshers: ['type'],
40
+ props: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, type }) {
41
+ if (type === 'department') {
42
+ return {
43
+ department_id: pieces_framework_1.Property.Number({
44
+ displayName: 'Department ID',
45
+ description: 'The numeric ID of the department. You can find this in your Weekdone organisation settings.',
46
+ required: true,
47
+ }),
48
+ };
49
+ }
50
+ if (type === 'team') {
51
+ const token = auth.access_token;
52
+ const teams = yield common_1.weekdoneCommon.fetchTeams({ token });
53
+ return {
54
+ team_id: pieces_framework_1.Property.StaticDropdown({
55
+ displayName: 'Team',
56
+ description: 'The team this objective belongs to.',
57
+ required: true,
58
+ options: { options: teams.map((t) => ({ label: t.name, value: t.id })) },
59
+ }),
60
+ };
61
+ }
62
+ if (type === 'user') {
63
+ const token = auth.access_token;
64
+ const [teams, users] = yield Promise.all([
65
+ common_1.weekdoneCommon.fetchTeams({ token }),
66
+ common_1.weekdoneCommon.fetchUsers({ token }),
67
+ ]);
68
+ return {
69
+ team_id: pieces_framework_1.Property.StaticDropdown({
70
+ displayName: 'Team',
71
+ description: "The user's primary team.",
72
+ required: true,
73
+ options: { options: teams.map((t) => ({ label: t.name, value: t.id })) },
74
+ }),
75
+ user_id: pieces_framework_1.Property.StaticDropdown({
76
+ displayName: 'User',
77
+ description: 'The user this objective belongs to.',
78
+ required: true,
79
+ options: { options: users.map((u) => ({ label: u.name, value: u.id })) },
80
+ }),
81
+ };
82
+ }
83
+ return {};
84
+ }),
85
+ }),
86
+ period: pieces_framework_1.Property.ShortText({
87
+ displayName: 'Quarter',
88
+ description: 'The quarter this objective belongs to in YYYYQ format (e.g. "2024Q1" for Q1 2024, "2024Q3" for Q3 2024). Leave empty to use the current quarter.',
89
+ required: false,
90
+ }),
91
+ },
92
+ run(context) {
93
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
94
+ var _a, _b, _c, _d, _e, _f;
95
+ const { description, type, level_details, period } = context.propsValue;
96
+ const token = context.auth.access_token;
97
+ const body = { description, type };
98
+ if (period)
99
+ body['period'] = period;
100
+ if (type === 'department' && level_details) {
101
+ body['department_id'] = level_details['department_id'];
102
+ }
103
+ else if (type === 'team' && level_details) {
104
+ body['team_id'] = level_details['team_id'];
105
+ }
106
+ else if (type === 'user' && level_details) {
107
+ body['team_id'] = level_details['team_id'];
108
+ body['user_id'] = level_details['user_id'];
109
+ }
110
+ const response = yield pieces_common_1.httpClient.sendRequest({
111
+ method: pieces_common_1.HttpMethod.POST,
112
+ url: `https://api.weekdone.com/1/objective?token=${token}`,
113
+ body,
114
+ });
115
+ const obj = ((_b = (_a = response.body['data']) !== null && _a !== void 0 ? _a : response.body['objective']) !== null && _b !== void 0 ? _b : response.body);
116
+ return {
117
+ id: obj.id,
118
+ type: obj.type,
119
+ description: obj.description,
120
+ period: obj.period,
121
+ progress: obj.progress,
122
+ comment_count: Array.isArray(obj.comments) ? obj.comments.length : ((_c = obj.comments) !== null && _c !== void 0 ? _c : 0),
123
+ key_result_count: Array.isArray(obj.results) ? obj.results.length : 0,
124
+ department_id: (_d = obj.department_id) !== null && _d !== void 0 ? _d : null,
125
+ team_id: (_e = obj.team_id) !== null && _e !== void 0 ? _e : null,
126
+ user_id: (_f = obj.user_id) !== null && _f !== void 0 ? _f : null,
127
+ };
128
+ });
129
+ },
130
+ });
131
+ //# sourceMappingURL=create-objective.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-objective.js","sourceRoot":"","sources":["../../../../src/lib/actions/create-objective.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare const updateItemAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
2
+ search_period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
3
+ item_id: import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
4
+ description: import("@activepieces/pieces-framework").LongTextProperty<false>;
5
+ type_id: import("@activepieces/pieces-framework").StaticDropdownProperty<number, false>;
6
+ move_to_period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
7
+ priority: import("@activepieces/pieces-framework").StaticDropdownProperty<number, false>;
8
+ due_on: import("@activepieces/pieces-framework").ShortTextProperty<false>;
9
+ }>;
10
+ //# sourceMappingURL=update-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-item.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-item.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,gBAAgB;;;;;;;;EAiJ3B,CAAC"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateItemAction = 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 auth_1 = require("../auth");
8
+ exports.updateItemAction = (0, pieces_framework_1.createAction)({
9
+ auth: auth_1.weekdoneAuth,
10
+ name: 'update_item',
11
+ displayName: 'Update Item',
12
+ description: 'Updates an existing report item in Weekdone.',
13
+ props: {
14
+ search_period: pieces_framework_1.Property.ShortText({
15
+ displayName: 'Search Week',
16
+ description: 'Filter the item list by week in YYYYWW format (e.g. "202403" for week 3 of 2024). Leave empty to search the current week.',
17
+ required: false,
18
+ }),
19
+ item_id: pieces_framework_1.Property.Dropdown({
20
+ displayName: 'Item',
21
+ description: 'The report item to update. Change "Search Week" above to find items from other weeks.',
22
+ required: true,
23
+ refreshers: ['search_period'],
24
+ auth: auth_1.weekdoneAuth,
25
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, search_period }) {
26
+ var _b;
27
+ if (!auth) {
28
+ return { disabled: true, options: [], placeholder: 'Please connect your account first.' };
29
+ }
30
+ const token = auth.access_token;
31
+ const queryParams = { user_id: 'me' };
32
+ if (search_period)
33
+ queryParams['period'] = search_period;
34
+ try {
35
+ const response = yield pieces_common_1.httpClient.sendRequest({
36
+ method: pieces_common_1.HttpMethod.GET,
37
+ url: `https://api.weekdone.com/1/items?token=${token}`,
38
+ queryParams,
39
+ });
40
+ const items = (_b = response.body.items) !== null && _b !== void 0 ? _b : [];
41
+ if (items.length === 0) {
42
+ return {
43
+ disabled: false,
44
+ options: [],
45
+ placeholder: 'No items found for this week. Try a different Search Week.',
46
+ };
47
+ }
48
+ return {
49
+ disabled: false,
50
+ options: items.map((item) => ({
51
+ label: item.description,
52
+ value: item.id,
53
+ })),
54
+ };
55
+ }
56
+ catch (_c) {
57
+ return {
58
+ disabled: true,
59
+ options: [],
60
+ placeholder: 'Failed to load items. Check your connection.',
61
+ };
62
+ }
63
+ }),
64
+ }),
65
+ description: pieces_framework_1.Property.LongText({
66
+ displayName: 'Description',
67
+ description: 'The new text content for the item. Leave empty to keep the current value.',
68
+ required: false,
69
+ }),
70
+ type_id: pieces_framework_1.Property.StaticDropdown({
71
+ displayName: 'Report Category',
72
+ description: 'Move this item to a different report category. If you change this, you must also fill in "Target Week" below.',
73
+ required: false,
74
+ options: {
75
+ options: [
76
+ { label: 'Plans', value: 2 },
77
+ { label: 'Progress', value: 1 },
78
+ { label: 'Problems', value: 3 },
79
+ { label: 'Plans on Hold', value: 0 },
80
+ ],
81
+ },
82
+ }),
83
+ move_to_period: pieces_framework_1.Property.ShortText({
84
+ displayName: 'Target Week',
85
+ description: 'Required when changing the Report Category. The week to move the item into, in YYYYWW format (e.g. "202403").',
86
+ required: false,
87
+ }),
88
+ priority: pieces_framework_1.Property.StaticDropdown({
89
+ displayName: 'Priority',
90
+ description: 'The new priority level for this item. Leave empty to keep the current value.',
91
+ required: false,
92
+ options: {
93
+ options: [
94
+ { label: 'Not specified', value: 0 },
95
+ { label: 'Green (low)', value: 1 },
96
+ { label: 'Amber (medium)', value: 2 },
97
+ { label: 'Red (high)', value: 3 },
98
+ ],
99
+ },
100
+ }),
101
+ due_on: pieces_framework_1.Property.ShortText({
102
+ displayName: 'Due Date',
103
+ description: 'The new due date in YYYY-MM-DD format (e.g. "2024-03-15"). Leave empty to keep the current value.',
104
+ required: false,
105
+ }),
106
+ },
107
+ run(context) {
108
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
109
+ var _a, _b, _c, _d, _e;
110
+ const { item_id, description, type_id, move_to_period, priority, due_on } = context.propsValue;
111
+ const token = context.auth.access_token;
112
+ const body = {};
113
+ if (description)
114
+ body['description'] = description;
115
+ if (type_id !== null && type_id !== undefined) {
116
+ body['type_id'] = type_id;
117
+ if (move_to_period)
118
+ body['period'] = move_to_period;
119
+ }
120
+ if (priority !== null && priority !== undefined)
121
+ body['priority'] = priority;
122
+ if (due_on)
123
+ body['due_on'] = due_on;
124
+ const response = yield pieces_common_1.httpClient.sendRequest({
125
+ method: pieces_common_1.HttpMethod.PATCH,
126
+ url: `https://api.weekdone.com/1/item/${item_id}?token=${token}`,
127
+ body,
128
+ });
129
+ const item = ((_b = (_a = response.body['item']) !== null && _a !== void 0 ? _a : response.body['data']) !== null && _b !== void 0 ? _b : response.body);
130
+ return {
131
+ id: item.id,
132
+ description: item.description,
133
+ type_id: item.type_id,
134
+ inserted: item.inserted,
135
+ due_on: (_c = item.due_on) !== null && _c !== void 0 ? _c : null,
136
+ priority: item.priority,
137
+ user_id: item.user_id,
138
+ team_id: item.team_id,
139
+ from_id: (_d = item.from_id) !== null && _d !== void 0 ? _d : null,
140
+ source: item.source,
141
+ source_id: (_e = item.source_id) !== null && _e !== void 0 ? _e : null,
142
+ is_private: item.private,
143
+ position: item.nr,
144
+ like_count: item.likecount,
145
+ comment_count: item.commentcount,
146
+ };
147
+ });
148
+ },
149
+ });
150
+ //# sourceMappingURL=update-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-item.js","sourceRoot":"","sources":["../../../../src/lib/actions/update-item.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare const updateObjectiveAction: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
2
+ search_type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
3
+ search_period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
4
+ objective_id: import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
5
+ description: import("@activepieces/pieces-framework").LongTextProperty<true>;
6
+ }>;
7
+ //# sourceMappingURL=update-objective.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-objective.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/update-objective.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,qBAAqB;;;;;EAyGhC,CAAC"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateObjectiveAction = 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 auth_1 = require("../auth");
8
+ exports.updateObjectiveAction = (0, pieces_framework_1.createAction)({
9
+ auth: auth_1.weekdoneAuth,
10
+ name: 'update_objective',
11
+ displayName: 'Update Objective',
12
+ description: 'Updates the description of an existing OKR objective in Weekdone.',
13
+ props: {
14
+ search_type: pieces_framework_1.Property.StaticDropdown({
15
+ displayName: 'Filter by Level',
16
+ description: 'Narrow the objective list by level to make it easier to find the one you want.',
17
+ required: false,
18
+ defaultValue: 'company',
19
+ options: {
20
+ options: [
21
+ { label: 'Company', value: 'company' },
22
+ { label: 'Department', value: 'department' },
23
+ { label: 'Team', value: 'team' },
24
+ { label: 'Personal (User)', value: 'user' },
25
+ ],
26
+ },
27
+ }),
28
+ search_period: pieces_framework_1.Property.ShortText({
29
+ displayName: 'Filter by Quarter',
30
+ description: 'Narrow the objective list by quarter in YYYYQ format (e.g. "2024Q1"). Leave empty to show objectives from all periods.',
31
+ required: false,
32
+ }),
33
+ objective_id: pieces_framework_1.Property.Dropdown({
34
+ displayName: 'Objective',
35
+ description: 'The objective to update. Use "Filter by Level" and "Filter by Quarter" above to narrow the list.',
36
+ required: true,
37
+ auth: auth_1.weekdoneAuth,
38
+ refreshers: ['search_type', 'search_period'],
39
+ options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, search_type, search_period }) {
40
+ var _b;
41
+ if (!auth) {
42
+ return { disabled: true, options: [], placeholder: 'Please connect your account first.' };
43
+ }
44
+ const token = auth.access_token;
45
+ const queryParams = {};
46
+ if (search_type)
47
+ queryParams['type'] = search_type;
48
+ if (search_period)
49
+ queryParams['period'] = search_period;
50
+ try {
51
+ const response = yield pieces_common_1.httpClient.sendRequest({
52
+ method: pieces_common_1.HttpMethod.GET,
53
+ url: `https://api.weekdone.com/1/objective?token=${token}`,
54
+ queryParams,
55
+ });
56
+ const objectives = (_b = response.body.data) !== null && _b !== void 0 ? _b : [];
57
+ if (objectives.length === 0) {
58
+ return {
59
+ disabled: false,
60
+ options: [],
61
+ placeholder: 'No objectives found. Try different filters.',
62
+ };
63
+ }
64
+ return {
65
+ disabled: false,
66
+ options: objectives.map((obj) => {
67
+ var _a;
68
+ return ({
69
+ label: `${obj.description} (${(_a = obj.period) !== null && _a !== void 0 ? _a : 'no period'})`,
70
+ value: obj.id,
71
+ });
72
+ }),
73
+ };
74
+ }
75
+ catch (_c) {
76
+ return {
77
+ disabled: true,
78
+ options: [],
79
+ placeholder: 'Failed to load objectives. Check your connection.',
80
+ };
81
+ }
82
+ }),
83
+ }),
84
+ description: pieces_framework_1.Property.LongText({
85
+ displayName: 'Description',
86
+ description: 'The new text for the objective.',
87
+ required: true,
88
+ }),
89
+ },
90
+ run(context) {
91
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
92
+ var _a, _b, _c, _d, _e, _f;
93
+ const { objective_id, description } = context.propsValue;
94
+ const token = context.auth.access_token;
95
+ const response = yield pieces_common_1.httpClient.sendRequest({
96
+ method: pieces_common_1.HttpMethod.PATCH,
97
+ url: `https://api.weekdone.com/1/objective/${objective_id}?token=${token}`,
98
+ body: { description },
99
+ });
100
+ const obj = ((_b = (_a = response.body['data']) !== null && _a !== void 0 ? _a : response.body['objective']) !== null && _b !== void 0 ? _b : response.body);
101
+ return {
102
+ id: obj.id,
103
+ type: obj.type,
104
+ description: obj.description,
105
+ period: obj.period,
106
+ progress: obj.progress,
107
+ comment_count: Array.isArray(obj.comments) ? obj.comments.length : ((_c = obj.comments) !== null && _c !== void 0 ? _c : 0),
108
+ key_result_count: Array.isArray(obj.results) ? obj.results.length : 0,
109
+ department_id: (_d = obj.department_id) !== null && _d !== void 0 ? _d : null,
110
+ team_id: (_e = obj.team_id) !== null && _e !== void 0 ? _e : null,
111
+ user_id: (_f = obj.user_id) !== null && _f !== void 0 ? _f : null,
112
+ };
113
+ });
114
+ },
115
+ });
116
+ //# sourceMappingURL=update-objective.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-objective.js","sourceRoot":"","sources":["../../../../src/lib/actions/update-objective.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAqE;AACrE,kCAAuC;AAgB1B,QAAA,qBAAqB,GAAG,IAAA,+BAAY,EAAC;IAChD,IAAI,EAAE,mBAAY;IAClB,IAAI,EAAE,kBAAkB;IACxB,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,mEAAmE;IAChF,KAAK,EAAE;QACL,WAAW,EAAE,2BAAQ,CAAC,cAAc,CAAC;YACnC,WAAW,EAAE,iBAAiB;YAC9B,WAAW,EAAE,gFAAgF;YAC7F,QAAQ,EAAE,KAAK;YACf,YAAY,EAAE,SAAS;YACvB,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;oBACtC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;oBAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;oBAChC,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE;iBAC5C;aACF;SACF,CAAC;QACF,aAAa,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAChC,WAAW,EAAE,mBAAmB;YAChC,WAAW,EACT,wHAAwH;YAC1H,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,YAAY,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC9B,WAAW,EAAE,WAAW;YACxB,WAAW,EACT,kGAAkG;YACpG,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,mBAAY;YAClB,UAAU,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;YAC5C,OAAO,EAAE,KAA6C,EAAE,oDAAxC,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;;gBAClD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;gBAC5F,CAAC;gBACD,MAAM,KAAK,GAAI,IAAiC,CAAC,YAAY,CAAC;gBAC9D,MAAM,WAAW,GAA2B,EAAE,CAAC;gBAC/C,IAAI,WAAW;oBAAE,WAAW,CAAC,MAAM,CAAC,GAAG,WAAqB,CAAC;gBAC7D,IAAI,aAAa;oBAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,aAAuB,CAAC;gBAEnE,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAG1C;wBACD,MAAM,EAAE,0BAAU,CAAC,GAAG;wBACtB,GAAG,EAAE,8CAA8C,KAAK,EAAE;wBAC1D,WAAW;qBACZ,CAAC,CAAC;oBACH,MAAM,UAAU,GAAG,MAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;oBAC5C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC5B,OAAO;4BACL,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,EAAE;4BACX,WAAW,EAAE,6CAA6C;yBAC3D,CAAC;oBACJ,CAAC;oBACD,OAAO;wBACL,QAAQ,EAAE,KAAK;wBACf,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;;4BAAC,OAAA,CAAC;gCAChC,KAAK,EAAE,GAAG,GAAG,CAAC,WAAW,KAAK,MAAA,GAAG,CAAC,MAAM,mCAAI,WAAW,GAAG;gCAC1D,KAAK,EAAE,GAAG,CAAC,EAAE;6BACd,CAAC,CAAA;yBAAA,CAAC;qBACJ,CAAC;gBACJ,CAAC;gBAAC,WAAM,CAAC;oBACP,OAAO;wBACL,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,mDAAmD;qBACjE,CAAC;gBACJ,CAAC;YACH,CAAC,CAAA;SACF,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC7B,WAAW,EAAE,aAAa;YAC1B,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,IAAI;SACf,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;;YACf,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;YAExC,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAA0B;gBACrE,MAAM,EAAE,0BAAU,CAAC,KAAK;gBACxB,GAAG,EAAE,wCAAwC,YAAY,UAAU,KAAK,EAAE;gBAC1E,IAAI,EAAE,EAAE,WAAW,EAAE;aACtB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,CAAC,MAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,mCAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,mCAAI,QAAQ,CAAC,IAAI,CAAsB,CAAC;YACxG,OAAO;gBACL,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,GAAG,CAAC,QAAQ,mCAAI,CAAC,CAAC;gBACtF,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrE,aAAa,EAAE,MAAA,GAAG,CAAC,aAAa,mCAAI,IAAI;gBACxC,OAAO,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,IAAI;gBAC5B,OAAO,EAAE,MAAA,GAAG,CAAC,OAAO,mCAAI,IAAI;aAC7B,CAAC;QACJ,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const weekdoneAuth: import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>;
2
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,+GAKvB,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.weekdoneAuth = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ exports.weekdoneAuth = pieces_framework_1.PieceAuth.OAuth2({
6
+ required: true,
7
+ authUrl: 'https://weekdone.com/oauth_authorize',
8
+ tokenUrl: 'https://weekdone.com/oauth_token',
9
+ scope: [],
10
+ });
11
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":";;;AAAA,qEAA2D;AAE9C,QAAA,YAAY,GAAG,4BAAS,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,sCAAsC;IAC/C,QAAQ,EAAE,kCAAkC;IAC5C,KAAK,EAAE,EAAE;CACV,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ declare function fetchUsers({ token }: {
2
+ token: string;
3
+ }): Promise<WeekdoneUser[]>;
4
+ declare function fetchTeams({ token }: {
5
+ token: string;
6
+ }): Promise<WeekdoneTeam[]>;
7
+ declare function userDropdown({ displayName, description, required, }: {
8
+ displayName: string;
9
+ description: string;
10
+ required: boolean;
11
+ }): import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
12
+ declare function teamDropdown({ displayName, description, required, }: {
13
+ displayName: string;
14
+ description: string;
15
+ required: boolean;
16
+ }): import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
17
+ export declare const weekdoneCommon: {
18
+ fetchUsers: typeof fetchUsers;
19
+ fetchTeams: typeof fetchTeams;
20
+ userDropdown: typeof userDropdown;
21
+ teamDropdown: typeof teamDropdown;
22
+ };
23
+ export type WeekdoneUser = {
24
+ id: number;
25
+ name: string;
26
+ team_id: number;
27
+ };
28
+ export type WeekdoneTeam = {
29
+ id: number;
30
+ name: string;
31
+ };
32
+ export {};
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"AAIA,iBAAe,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAM/E;AAED,iBAAe,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAM/E;AAED,iBAAS,YAAY,CAAC,EACpB,WAAW,EACX,WAAW,EACX,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,oXAuBA;AAED,iBAAS,YAAY,CAAC,EACpB,WAAW,EACX,WAAW,EACX,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,oXAuBA;AAED,eAAO,MAAM,cAAc;;;;;CAAyD,CAAC;AAErF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd,CAAC"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.weekdoneCommon = 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 auth_1 = require("../auth");
8
+ function fetchUsers(_a) {
9
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ token }) {
10
+ var _b;
11
+ const response = yield pieces_common_1.httpClient.sendRequest({
12
+ method: pieces_common_1.HttpMethod.GET,
13
+ url: `https://api.weekdone.com/1/users?token=${token}`,
14
+ });
15
+ return (_b = response.body.users) !== null && _b !== void 0 ? _b : [];
16
+ });
17
+ }
18
+ function fetchTeams(_a) {
19
+ return tslib_1.__awaiter(this, arguments, void 0, function* ({ token }) {
20
+ var _b;
21
+ const response = yield pieces_common_1.httpClient.sendRequest({
22
+ method: pieces_common_1.HttpMethod.GET,
23
+ url: `https://api.weekdone.com/1/teams?token=${token}`,
24
+ });
25
+ return (_b = response.body.teams) !== null && _b !== void 0 ? _b : [];
26
+ });
27
+ }
28
+ function userDropdown({ displayName, description, required, }) {
29
+ return pieces_framework_1.Property.Dropdown({
30
+ displayName,
31
+ description,
32
+ required,
33
+ auth: auth_1.weekdoneAuth,
34
+ refreshers: [],
35
+ options: (_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ auth }) {
36
+ if (!auth) {
37
+ return { disabled: true, options: [], placeholder: 'Please connect your account first.' };
38
+ }
39
+ const token = auth.access_token;
40
+ try {
41
+ const users = yield fetchUsers({ token });
42
+ return {
43
+ disabled: false,
44
+ options: users.map((u) => ({ label: u.name, value: u.id })),
45
+ };
46
+ }
47
+ catch (_b) {
48
+ return { disabled: true, options: [], placeholder: 'Failed to load users.' };
49
+ }
50
+ }),
51
+ });
52
+ }
53
+ function teamDropdown({ displayName, description, required, }) {
54
+ return pieces_framework_1.Property.Dropdown({
55
+ displayName,
56
+ description,
57
+ required,
58
+ auth: auth_1.weekdoneAuth,
59
+ refreshers: [],
60
+ options: (_a) => tslib_1.__awaiter(this, [_a], void 0, function* ({ auth }) {
61
+ if (!auth) {
62
+ return { disabled: true, options: [], placeholder: 'Please connect your account first.' };
63
+ }
64
+ const token = auth.access_token;
65
+ try {
66
+ const teams = yield fetchTeams({ token });
67
+ return {
68
+ disabled: false,
69
+ options: teams.map((t) => ({ label: t.name, value: t.id })),
70
+ };
71
+ }
72
+ catch (_b) {
73
+ return { disabled: true, options: [], placeholder: 'Failed to load teams.' };
74
+ }
75
+ }),
76
+ });
77
+ }
78
+ exports.weekdoneCommon = { fetchUsers, fetchTeams, userDropdown, teamDropdown };
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ export declare const newItemTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
3
+ user_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
4
+ team_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
5
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
6
+ user_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
7
+ team_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
8
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
9
+ user_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
10
+ team_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
11
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
12
+ user_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
13
+ team_id: import("@activepieces/pieces-framework").DropdownProperty<number, false, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>> | import("@activepieces/pieces-framework").DropdownProperty<number, true, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>>;
14
+ }>;
15
+ //# sourceMappingURL=new-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-item.d.ts","sourceRoot":"","sources":["../../../../src/lib/triggers/new-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAGhB,MAAM,gCAAgC,CAAC;AAwFxC,eAAO,MAAM,cAAc;;;;;;;;;;;;EAoCzB,CAAC"}
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newItemTrigger = 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 auth_1 = require("../auth");
8
+ const common_1 = require("../common");
9
+ const props = {
10
+ user_id: common_1.weekdoneCommon.userDropdown({
11
+ displayName: 'Filter by User',
12
+ description: 'Only trigger for items belonging to this user. Leave empty to receive items from all users.',
13
+ required: false,
14
+ }),
15
+ team_id: common_1.weekdoneCommon.teamDropdown({
16
+ displayName: 'Filter by Team',
17
+ description: 'Only trigger for items added to this team. Leave empty to receive items from all teams.',
18
+ required: false,
19
+ }),
20
+ };
21
+ const polling = {
22
+ strategy: pieces_common_1.DedupeStrategy.TIMEBASED,
23
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue }) {
24
+ var _b;
25
+ const token = auth.access_token;
26
+ const queryParams = {};
27
+ if (propsValue.user_id !== null && propsValue.user_id !== undefined) {
28
+ queryParams['user_id'] = String(propsValue.user_id);
29
+ }
30
+ if (propsValue.team_id !== null && propsValue.team_id !== undefined) {
31
+ queryParams['team_id'] = String(propsValue.team_id);
32
+ }
33
+ const response = yield pieces_common_1.httpClient.sendRequest({
34
+ method: pieces_common_1.HttpMethod.GET,
35
+ url: `https://api.weekdone.com/1/items?token=${token}`,
36
+ queryParams,
37
+ });
38
+ const items = (_b = response.body.items) !== null && _b !== void 0 ? _b : [];
39
+ return items.map((item) => {
40
+ var _a, _b, _c;
41
+ return ({
42
+ epochMilliSeconds: new Date(item.inserted).getTime(),
43
+ data: {
44
+ id: item.id,
45
+ description: item.description,
46
+ type_id: item.type_id,
47
+ inserted: item.inserted,
48
+ due_on: (_a = item.due_on) !== null && _a !== void 0 ? _a : null,
49
+ priority: item.priority,
50
+ user_id: item.user_id,
51
+ team_id: item.team_id,
52
+ from_id: (_b = item.from_id) !== null && _b !== void 0 ? _b : null,
53
+ source: item.source,
54
+ source_id: (_c = item.source_id) !== null && _c !== void 0 ? _c : null,
55
+ is_private: item.private,
56
+ position: item.nr,
57
+ like_count: item.likecount,
58
+ comment_count: item.commentcount,
59
+ },
60
+ });
61
+ });
62
+ }),
63
+ };
64
+ exports.newItemTrigger = (0, pieces_framework_1.createTrigger)({
65
+ auth: auth_1.weekdoneAuth,
66
+ name: 'new_item',
67
+ displayName: 'New Item',
68
+ description: 'Triggers when a new item is added to a Weekdone report.',
69
+ props,
70
+ sampleData: {
71
+ id: 690,
72
+ description: 'Finished Q1 planning session',
73
+ type_id: 2,
74
+ inserted: '2024-01-15T09:00:00Z',
75
+ due_on: null,
76
+ priority: 1,
77
+ user_id: 12,
78
+ team_id: 3,
79
+ from_id: null,
80
+ source: 0,
81
+ source_id: null,
82
+ is_private: 0,
83
+ position: 1,
84
+ like_count: 0,
85
+ comment_count: 0,
86
+ },
87
+ type: pieces_framework_1.TriggerStrategy.POLLING,
88
+ test(context) {
89
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
90
+ return yield pieces_common_1.pollingHelper.test(polling, context);
91
+ });
92
+ },
93
+ onEnable(context) {
94
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
95
+ yield pieces_common_1.pollingHelper.onEnable(polling, context);
96
+ });
97
+ },
98
+ onDisable(context) {
99
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
100
+ yield pieces_common_1.pollingHelper.onDisable(polling, context);
101
+ });
102
+ },
103
+ run(context) {
104
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
105
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
106
+ });
107
+ },
108
+ });
109
+ //# sourceMappingURL=new-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-item.js","sourceRoot":"","sources":["../../../../src/lib/triggers/new-item.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { TriggerStrategy } from '@activepieces/pieces-framework';
2
+ export declare const newObjectiveTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
3
+ type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
4
+ period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
5
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
6
+ type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
7
+ period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
8
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
9
+ type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
10
+ period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
11
+ }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props>, {
12
+ type: import("@activepieces/pieces-framework").StaticDropdownProperty<string, false>;
13
+ period: import("@activepieces/pieces-framework").ShortTextProperty<false>;
14
+ }>;
15
+ //# sourceMappingURL=new-objective.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-objective.d.ts","sourceRoot":"","sources":["../../../../src/lib/triggers/new-objective.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAIhB,MAAM,gCAAgC,CAAC;AAyFxC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EA+B9B,CAAC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newObjectiveTrigger = 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 auth_1 = require("../auth");
8
+ const props = {
9
+ type: pieces_framework_1.Property.StaticDropdown({
10
+ displayName: 'Objective Level',
11
+ description: 'Only trigger for objectives at a specific level. Leave empty to receive objectives from all levels.',
12
+ required: false,
13
+ options: {
14
+ options: [
15
+ { label: 'Company', value: 'company' },
16
+ { label: 'Department', value: 'department' },
17
+ { label: 'Team', value: 'team' },
18
+ { label: 'Personal (User)', value: 'user' },
19
+ ],
20
+ },
21
+ }),
22
+ period: pieces_framework_1.Property.ShortText({
23
+ displayName: 'Quarter',
24
+ description: 'Only trigger for objectives in a specific quarter. Use YYYYQ format (e.g. "2024Q1") or a full year (e.g. "2024"). Leave empty to watch all periods.',
25
+ required: false,
26
+ }),
27
+ };
28
+ const polling = {
29
+ strategy: pieces_common_1.DedupeStrategy.LAST_ITEM,
30
+ items: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, propsValue }) {
31
+ var _b;
32
+ const token = auth.access_token;
33
+ const queryParams = {};
34
+ if (propsValue.type)
35
+ queryParams['type'] = propsValue.type;
36
+ if (propsValue.period)
37
+ queryParams['period'] = propsValue.period;
38
+ const response = yield pieces_common_1.httpClient.sendRequest({
39
+ method: pieces_common_1.HttpMethod.GET,
40
+ url: `https://api.weekdone.com/1/objective?token=${token}`,
41
+ queryParams,
42
+ });
43
+ const objectives = (_b = response.body.data) !== null && _b !== void 0 ? _b : [];
44
+ return objectives
45
+ .sort((a, b) => b.id - a.id)
46
+ .map((obj) => {
47
+ var _a, _b, _c, _d;
48
+ return ({
49
+ id: obj.id,
50
+ data: {
51
+ id: obj.id,
52
+ type: obj.type,
53
+ description: obj.description,
54
+ period: obj.period,
55
+ progress: obj.progress,
56
+ comment_count: Array.isArray(obj.comments) ? obj.comments.length : ((_a = obj.comments) !== null && _a !== void 0 ? _a : 0),
57
+ key_result_count: Array.isArray(obj.results) ? obj.results.length : 0,
58
+ department_id: (_b = obj.department_id) !== null && _b !== void 0 ? _b : null,
59
+ team_id: (_c = obj.team_id) !== null && _c !== void 0 ? _c : null,
60
+ user_id: (_d = obj.user_id) !== null && _d !== void 0 ? _d : null,
61
+ },
62
+ });
63
+ });
64
+ }),
65
+ };
66
+ exports.newObjectiveTrigger = (0, pieces_framework_1.createTrigger)({
67
+ auth: auth_1.weekdoneAuth,
68
+ name: 'new_objective',
69
+ displayName: 'New Objective',
70
+ description: 'Triggers when a new OKR objective is added in Weekdone.',
71
+ props,
72
+ sampleData: {
73
+ id: 1,
74
+ type: 'company',
75
+ description: 'Grow revenue by 20% this quarter',
76
+ period: '2024Q1',
77
+ progress: 0,
78
+ comment_count: 0,
79
+ key_result_count: 0,
80
+ department_id: null,
81
+ team_id: null,
82
+ user_id: null,
83
+ },
84
+ type: pieces_framework_1.TriggerStrategy.POLLING,
85
+ test(context) {
86
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
87
+ return yield pieces_common_1.pollingHelper.test(polling, context);
88
+ });
89
+ },
90
+ onEnable(context) {
91
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
92
+ yield pieces_common_1.pollingHelper.onEnable(polling, context);
93
+ });
94
+ },
95
+ onDisable(context) {
96
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
97
+ yield pieces_common_1.pollingHelper.onDisable(polling, context);
98
+ });
99
+ },
100
+ run(context) {
101
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
102
+ return yield pieces_common_1.pollingHelper.poll(polling, context);
103
+ });
104
+ },
105
+ });
106
+ //# sourceMappingURL=new-objective.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"new-objective.js","sourceRoot":"","sources":["../../../../src/lib/triggers/new-objective.ts"],"names":[],"mappings":"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"}