@workbuddy/piece-workbuddy-edge 1.0.33 → 1.0.35

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 (149) hide show
  1. package/package.json +1 -1
  2. package/src/index.d.ts.map +1 -1
  3. package/src/index.js +98 -14
  4. package/src/index.js.map +1 -1
  5. package/src/index.ts +183 -10
  6. package/src/lib/actions/crm-companies.d.ts +1 -0
  7. package/src/lib/actions/crm-companies.d.ts.map +1 -1
  8. package/src/lib/actions/crm-companies.js +9 -0
  9. package/src/lib/actions/crm-companies.js.map +1 -1
  10. package/src/lib/actions/crm-companies.ts +11 -0
  11. package/src/lib/actions/crm-contacts.d.ts +25 -0
  12. package/src/lib/actions/crm-contacts.d.ts.map +1 -1
  13. package/src/lib/actions/crm-contacts.js +135 -3
  14. package/src/lib/actions/crm-contacts.js.map +1 -1
  15. package/src/lib/actions/crm-contacts.ts +149 -2
  16. package/src/lib/actions/crm-contractors.d.ts +110 -0
  17. package/src/lib/actions/crm-contractors.d.ts.map +1 -1
  18. package/src/lib/actions/crm-contractors.js +585 -2
  19. package/src/lib/actions/crm-contractors.js.map +1 -1
  20. package/src/lib/actions/crm-contractors.ts +631 -1
  21. package/src/lib/actions/crm-customers.d.ts +94 -0
  22. package/src/lib/actions/crm-customers.d.ts.map +1 -1
  23. package/src/lib/actions/crm-customers.js +504 -3
  24. package/src/lib/actions/crm-customers.js.map +1 -1
  25. package/src/lib/actions/crm-customers.ts +545 -2
  26. package/src/lib/actions/crm-external-users.js +1 -1
  27. package/src/lib/actions/crm-external-users.js.map +1 -1
  28. package/src/lib/actions/crm-external-users.ts +1 -1
  29. package/src/lib/actions/crm-invites.d.ts +1 -0
  30. package/src/lib/actions/crm-invites.d.ts.map +1 -1
  31. package/src/lib/actions/crm-invites.js +9 -0
  32. package/src/lib/actions/crm-invites.js.map +1 -1
  33. package/src/lib/actions/crm-invites.ts +11 -0
  34. package/src/lib/actions/crm-sites.d.ts +10 -0
  35. package/src/lib/actions/crm-sites.d.ts.map +1 -1
  36. package/src/lib/actions/crm-sites.js +59 -3
  37. package/src/lib/actions/crm-sites.js.map +1 -1
  38. package/src/lib/actions/crm-sites.ts +70 -2
  39. package/src/lib/actions/crm-suppliers.d.ts +64 -0
  40. package/src/lib/actions/crm-suppliers.d.ts.map +1 -1
  41. package/src/lib/actions/crm-suppliers.js +352 -2
  42. package/src/lib/actions/crm-suppliers.js.map +1 -1
  43. package/src/lib/actions/crm-suppliers.ts +376 -1
  44. package/src/lib/actions/index.d.ts +11 -1
  45. package/src/lib/actions/index.d.ts.map +1 -1
  46. package/src/lib/actions/index.js +11 -1
  47. package/src/lib/actions/index.js.map +1 -1
  48. package/src/lib/actions/index.ts +11 -1
  49. package/src/lib/actions/items.d.ts +8 -0
  50. package/src/lib/actions/items.d.ts.map +1 -0
  51. package/src/lib/actions/items.js +42 -0
  52. package/src/lib/actions/items.js.map +1 -0
  53. package/src/lib/actions/items.ts +45 -0
  54. package/src/lib/actions/jobs-activities.d.ts +4 -3
  55. package/src/lib/actions/jobs-activities.d.ts.map +1 -1
  56. package/src/lib/actions/jobs-activities.js +19 -12
  57. package/src/lib/actions/jobs-activities.js.map +1 -1
  58. package/src/lib/actions/jobs-activities.ts +19 -12
  59. package/src/lib/actions/jobs-tasks.d.ts +0 -2
  60. package/src/lib/actions/jobs-tasks.d.ts.map +1 -1
  61. package/src/lib/actions/jobs-tasks.js +0 -12
  62. package/src/lib/actions/jobs-tasks.js.map +1 -1
  63. package/src/lib/actions/jobs-tasks.ts +0 -12
  64. package/src/lib/actions/jobs.d.ts +89 -3
  65. package/src/lib/actions/jobs.d.ts.map +1 -1
  66. package/src/lib/actions/jobs.js +499 -31
  67. package/src/lib/actions/jobs.js.map +1 -1
  68. package/src/lib/actions/jobs.ts +527 -30
  69. package/src/lib/actions/mcp.d.ts +3 -3
  70. package/src/lib/actions/mcp.d.ts.map +1 -1
  71. package/src/lib/actions/mcp.js +9 -9
  72. package/src/lib/actions/mcp.js.map +1 -1
  73. package/src/lib/actions/mcp.ts +8 -8
  74. package/src/lib/actions/pending-items.d.ts +8 -0
  75. package/src/lib/actions/pending-items.d.ts.map +1 -0
  76. package/src/lib/actions/pending-items.js +42 -0
  77. package/src/lib/actions/pending-items.js.map +1 -0
  78. package/src/lib/actions/pending-items.ts +45 -0
  79. package/src/lib/actions/service-plans-lines-tasks-subtasks.d.ts +52 -0
  80. package/src/lib/actions/service-plans-lines-tasks-subtasks.d.ts.map +1 -0
  81. package/src/lib/actions/service-plans-lines-tasks-subtasks.js +257 -0
  82. package/src/lib/actions/service-plans-lines-tasks-subtasks.js.map +1 -0
  83. package/src/lib/actions/service-plans-lines-tasks-subtasks.ts +274 -0
  84. package/src/lib/actions/service-plans-lines-tasks.d.ts +52 -0
  85. package/src/lib/actions/service-plans-lines-tasks.d.ts.map +1 -0
  86. package/src/lib/actions/service-plans-lines-tasks.js +261 -0
  87. package/src/lib/actions/service-plans-lines-tasks.js.map +1 -0
  88. package/src/lib/actions/service-plans-lines-tasks.ts +278 -0
  89. package/src/lib/actions/service-plans-lines.d.ts +52 -0
  90. package/src/lib/actions/service-plans-lines.d.ts.map +1 -0
  91. package/src/lib/actions/service-plans-lines.js +286 -0
  92. package/src/lib/actions/service-plans-lines.js.map +1 -0
  93. package/src/lib/actions/service-plans-lines.ts +302 -0
  94. package/src/lib/actions/service-plans.d.ts +45 -0
  95. package/src/lib/actions/service-plans.d.ts.map +1 -0
  96. package/src/lib/actions/service-plans.js +229 -0
  97. package/src/lib/actions/service-plans.js.map +1 -0
  98. package/src/lib/actions/service-plans.ts +250 -0
  99. package/src/lib/actions/settings-custom-fields.d.ts +21 -0
  100. package/src/lib/actions/settings-custom-fields.d.ts.map +1 -0
  101. package/src/lib/actions/settings-custom-fields.js +95 -0
  102. package/src/lib/actions/settings-custom-fields.js.map +1 -0
  103. package/src/lib/actions/settings-custom-fields.ts +107 -0
  104. package/src/lib/actions/settings-items.d.ts +136 -0
  105. package/src/lib/actions/settings-items.d.ts.map +1 -0
  106. package/src/lib/actions/settings-items.js +772 -0
  107. package/src/lib/actions/settings-items.js.map +1 -0
  108. package/src/lib/actions/settings-items.ts +818 -0
  109. package/src/lib/actions/{settings.d.ts → settings-reference-data.d.ts} +42 -10
  110. package/src/lib/actions/settings-reference-data.d.ts.map +1 -0
  111. package/src/lib/actions/settings-reference-data.js +505 -0
  112. package/src/lib/actions/settings-reference-data.js.map +1 -0
  113. package/src/lib/actions/settings-reference-data.ts +586 -0
  114. package/src/lib/actions/settings-templates.d.ts +15 -0
  115. package/src/lib/actions/settings-templates.d.ts.map +1 -0
  116. package/src/lib/actions/settings-templates.js +75 -0
  117. package/src/lib/actions/settings-templates.js.map +1 -0
  118. package/src/lib/actions/settings-templates.ts +79 -0
  119. package/src/lib/actions/stages-activities.d.ts +4 -3
  120. package/src/lib/actions/stages-activities.d.ts.map +1 -1
  121. package/src/lib/actions/stages-activities.js +19 -12
  122. package/src/lib/actions/stages-activities.js.map +1 -1
  123. package/src/lib/actions/stages-activities.ts +19 -12
  124. package/src/lib/actions/stages-pending-items.d.ts +75 -0
  125. package/src/lib/actions/stages-pending-items.d.ts.map +1 -0
  126. package/src/lib/actions/stages-pending-items.js +370 -0
  127. package/src/lib/actions/stages-pending-items.js.map +1 -0
  128. package/src/lib/actions/stages-pending-items.ts +404 -0
  129. package/src/lib/actions/stages-resources.d.ts.map +1 -1
  130. package/src/lib/actions/stages-resources.js +5 -8
  131. package/src/lib/actions/stages-resources.js.map +1 -1
  132. package/src/lib/actions/stages-resources.ts +8 -8
  133. package/src/lib/actions/stages-tasks.d.ts +0 -2
  134. package/src/lib/actions/stages-tasks.d.ts.map +1 -1
  135. package/src/lib/actions/stages-tasks.js +0 -12
  136. package/src/lib/actions/stages-tasks.js.map +1 -1
  137. package/src/lib/actions/stages-tasks.ts +0 -12
  138. package/src/lib/actions/stages.d.ts +20 -3
  139. package/src/lib/actions/stages.d.ts.map +1 -1
  140. package/src/lib/actions/stages.js +103 -21
  141. package/src/lib/actions/stages.js.map +1 -1
  142. package/src/lib/actions/stages.ts +116 -20
  143. package/src/lib/actions/webhooks-v2.js +11 -11
  144. package/src/lib/actions/webhooks-v2.js.map +1 -1
  145. package/src/lib/actions/webhooks-v2.ts +11 -11
  146. package/src/lib/actions/settings.d.ts.map +0 -1
  147. package/src/lib/actions/settings.js +0 -257
  148. package/src/lib/actions/settings.js.map +0 -1
  149. package/src/lib/actions/settings.ts +0 -301
@@ -0,0 +1,302 @@
1
+ import { createAction, Property } from '@activepieces/pieces-framework';
2
+ import { HttpMethod, httpClient } from '@activepieces/pieces-common';
3
+ import { workbuddyAuth, getAccessToken } from '../auth';
4
+
5
+ export const PublicServiceLineController_list = createAction({
6
+ name: 'PublicServiceLineController_list',
7
+ auth: workbuddyAuth,
8
+ displayName: 'List Service Lines',
9
+ description: '',
10
+ props: {
11
+ planId: Property.ShortText({
12
+ displayName: 'Plan Id',
13
+ description: 'WorkBuddy Service Plan ID',
14
+ required: true,
15
+ }),
16
+ },
17
+ async run(context) {
18
+ const token = await getAccessToken(context.auth);
19
+ const baseUrl = context.auth.props.baseUrl;
20
+
21
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines`;
22
+
23
+ const response = await httpClient.sendRequest({
24
+ method: HttpMethod.GET,
25
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines`,
26
+ headers: {
27
+ Authorization: `Bearer ${token}`,
28
+ 'Content-Type': 'application/json',
29
+ 'X-WorkBuddy-Version': '2026-01',
30
+ },
31
+ });
32
+
33
+ return response.body;
34
+ },
35
+ });
36
+
37
+ export const PublicServiceLineController_create = createAction({
38
+ name: 'PublicServiceLineController_create',
39
+ auth: workbuddyAuth,
40
+ displayName: 'Create a Service Line',
41
+ description: '',
42
+ props: {
43
+ planId: Property.ShortText({
44
+ displayName: 'Plan Id',
45
+ description: 'plan ID',
46
+ required: true,
47
+ }),
48
+ integrationId: Property.ShortText({
49
+ displayName: 'Integration Id',
50
+ description: 'integration ID',
51
+ required: true,
52
+ }),
53
+ name: Property.ShortText({
54
+ displayName: 'Name',
55
+ description: 'Display name',
56
+ required: true,
57
+ }),
58
+ defaultWindow: Property.Json({
59
+ displayName: 'Default Window',
60
+ description: '',
61
+ required: true,
62
+ }),
63
+ description: Property.LongText({
64
+ displayName: 'Description',
65
+ description: 'Detailed description',
66
+ required: false,
67
+ }),
68
+ workCategoryId: Property.ShortText({
69
+ displayName: 'Work Category Id',
70
+ description: 'Work category ID — use /settings/work-types to look up',
71
+ required: false,
72
+ }),
73
+ serviceTypeId: Property.ShortText({
74
+ displayName: 'Service Type Id',
75
+ description: 'service type ID',
76
+ required: false,
77
+ }),
78
+ serviceScopeId: Property.ShortText({
79
+ displayName: 'Service Scope Id',
80
+ description: 'service scope ID',
81
+ required: false,
82
+ }),
83
+ dateStart: Property.ShortText({
84
+ displayName: 'Date Start',
85
+ description: '',
86
+ required: false,
87
+ }),
88
+ dateEnd: Property.ShortText({
89
+ displayName: 'Date End',
90
+ description: '',
91
+ required: false,
92
+ }),
93
+ workingDays: Property.StaticMultiSelectDropdown({
94
+ displayName: 'Working Days',
95
+ description: '',
96
+ required: false,
97
+ options: {
98
+ options: [
99
+ { label: 'Mon', value: 'Mon' },
100
+ { label: 'Tue', value: 'Tue' },
101
+ { label: 'Wed', value: 'Wed' },
102
+ { label: 'Thu', value: 'Thu' },
103
+ { label: 'Fri', value: 'Fri' },
104
+ { label: 'Sat', value: 'Sat' },
105
+ { label: 'Sun', value: 'Sun' },
106
+ ],
107
+ },
108
+ }),
109
+ jobDefaults: Property.Json({
110
+ displayName: 'Job Defaults',
111
+ description: '',
112
+ required: false,
113
+ }),
114
+ },
115
+ async run(context) {
116
+ const token = await getAccessToken(context.auth);
117
+ const baseUrl = context.auth.props.baseUrl;
118
+
119
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines`;
120
+
121
+ const rawBody: Record<string, unknown> = {
122
+ integrationId: context.propsValue.integrationId,
123
+ name: context.propsValue.name,
124
+ description: context.propsValue.description,
125
+ workCategoryId: context.propsValue.workCategoryId,
126
+ serviceTypeId: context.propsValue.serviceTypeId,
127
+ serviceScopeId: context.propsValue.serviceScopeId,
128
+ dateStart: context.propsValue.dateStart,
129
+ dateEnd: context.propsValue.dateEnd,
130
+ defaultWindow: context.propsValue.defaultWindow,
131
+ workingDays: context.propsValue.workingDays,
132
+ jobDefaults: context.propsValue.jobDefaults,
133
+ };
134
+
135
+ const body = rawBody;
136
+ const response = await httpClient.sendRequest({
137
+ method: HttpMethod.POST,
138
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines`,
139
+ headers: {
140
+ Authorization: `Bearer ${token}`,
141
+ 'Content-Type': 'application/json',
142
+ 'X-WorkBuddy-Version': '2026-01',
143
+ },
144
+ body: body,
145
+ });
146
+
147
+ return response.body;
148
+ },
149
+ });
150
+
151
+ export const PublicServiceLineController_get = createAction({
152
+ name: 'PublicServiceLineController_get',
153
+ auth: workbuddyAuth,
154
+ displayName: 'Get a Service Line',
155
+ description: '',
156
+ props: {
157
+ planId: Property.ShortText({
158
+ displayName: 'Plan Id',
159
+ description: 'plan ID',
160
+ required: true,
161
+ }),
162
+ identifier: Property.ShortText({
163
+ displayName: 'Identifier',
164
+ description: 'WorkBuddy Service Line ID or caller integrationId',
165
+ required: true,
166
+ }),
167
+ },
168
+ async run(context) {
169
+ const token = await getAccessToken(context.auth);
170
+ const baseUrl = context.auth.props.baseUrl;
171
+
172
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines/${context.propsValue.identifier}`;
173
+
174
+ const response = await httpClient.sendRequest({
175
+ method: HttpMethod.GET,
176
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines/${context.propsValue.identifier}`,
177
+ headers: {
178
+ Authorization: `Bearer ${token}`,
179
+ 'Content-Type': 'application/json',
180
+ 'X-WorkBuddy-Version': '2026-01',
181
+ },
182
+ });
183
+
184
+ return response.body;
185
+ },
186
+ });
187
+
188
+ export const PublicServiceLineController_patch = createAction({
189
+ name: 'PublicServiceLineController_patch',
190
+ auth: workbuddyAuth,
191
+ displayName: 'Update a Service Line',
192
+ description: '',
193
+ props: {
194
+ planId: Property.ShortText({
195
+ displayName: 'Plan Id',
196
+ description: 'plan ID',
197
+ required: true,
198
+ }),
199
+ identifier: Property.ShortText({
200
+ displayName: 'Identifier',
201
+ description: 'Entity ID or human-readable number',
202
+ required: true,
203
+ }),
204
+ name: Property.ShortText({
205
+ displayName: 'Name',
206
+ description: 'Display name',
207
+ required: false,
208
+ }),
209
+ description: Property.LongText({
210
+ displayName: 'Description',
211
+ description: 'Detailed description',
212
+ required: false,
213
+ }),
214
+ workCategoryId: Property.ShortText({
215
+ displayName: 'Work Category Id',
216
+ description: 'Work category ID — use /settings/work-types to look up',
217
+ required: false,
218
+ }),
219
+ serviceTypeId: Property.ShortText({
220
+ displayName: 'Service Type Id',
221
+ description: 'service type ID',
222
+ required: false,
223
+ }),
224
+ serviceScopeId: Property.ShortText({
225
+ displayName: 'Service Scope Id',
226
+ description: 'service scope ID',
227
+ required: false,
228
+ }),
229
+ dateStart: Property.ShortText({
230
+ displayName: 'Date Start',
231
+ description: '',
232
+ required: false,
233
+ }),
234
+ dateEnd: Property.ShortText({
235
+ displayName: 'Date End',
236
+ description: '',
237
+ required: false,
238
+ }),
239
+ defaultWindow: Property.Json({
240
+ displayName: 'Default Window',
241
+ description: '',
242
+ required: false,
243
+ }),
244
+ workingDays: Property.StaticMultiSelectDropdown({
245
+ displayName: 'Working Days',
246
+ description: '',
247
+ required: false,
248
+ options: {
249
+ options: [
250
+ { label: 'Mon', value: 'Mon' },
251
+ { label: 'Tue', value: 'Tue' },
252
+ { label: 'Wed', value: 'Wed' },
253
+ { label: 'Thu', value: 'Thu' },
254
+ { label: 'Fri', value: 'Fri' },
255
+ { label: 'Sat', value: 'Sat' },
256
+ { label: 'Sun', value: 'Sun' },
257
+ ],
258
+ },
259
+ }),
260
+ jobDefaults: Property.Json({
261
+ displayName: 'Job Defaults',
262
+ description: '',
263
+ required: false,
264
+ }),
265
+ },
266
+ async run(context) {
267
+ const token = await getAccessToken(context.auth);
268
+ const baseUrl = context.auth.props.baseUrl;
269
+
270
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines/${context.propsValue.identifier}`;
271
+
272
+ // Build body with only defined values (for partial updates)
273
+ const rawBody: Record<string, unknown> = {
274
+ name: context.propsValue.name,
275
+ description: context.propsValue.description,
276
+ workCategoryId: context.propsValue.workCategoryId,
277
+ serviceTypeId: context.propsValue.serviceTypeId,
278
+ serviceScopeId: context.propsValue.serviceScopeId,
279
+ dateStart: context.propsValue.dateStart,
280
+ dateEnd: context.propsValue.dateEnd,
281
+ defaultWindow: context.propsValue.defaultWindow,
282
+ workingDays: context.propsValue.workingDays,
283
+ jobDefaults: context.propsValue.jobDefaults,
284
+ };
285
+
286
+ const body = Object.fromEntries(
287
+ Object.entries(rawBody).filter(([_, v]) => v !== undefined && v !== null && v !== '')
288
+ );
289
+ const response = await httpClient.sendRequest({
290
+ method: HttpMethod.PATCH,
291
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.planId}/lines/${context.propsValue.identifier}`,
292
+ headers: {
293
+ Authorization: `Bearer ${token}`,
294
+ 'Content-Type': 'application/json',
295
+ 'X-WorkBuddy-Version': '2026-01',
296
+ },
297
+ body: body,
298
+ });
299
+
300
+ return response.body;
301
+ },
302
+ });
@@ -0,0 +1,45 @@
1
+ export declare const PublicServicePlanController_create: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
+ }>, {
6
+ integrationId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
7
+ name: import("@activepieces/pieces-framework").ShortTextProperty<true>;
8
+ customerId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
9
+ siteId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
10
+ dateStart: import("@activepieces/pieces-framework").ShortTextProperty<true>;
11
+ dateEnd: import("@activepieces/pieces-framework").ShortTextProperty<false>;
12
+ workingDays: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
13
+ }>;
14
+ export declare const PublicServicePlanController_get: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
15
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
16
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
17
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
18
+ }>, {
19
+ identifier: import("@activepieces/pieces-framework").ShortTextProperty<true>;
20
+ }>;
21
+ export declare const PublicServicePlanController_activate: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
22
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
23
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
24
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
25
+ }>, {
26
+ identifier: import("@activepieces/pieces-framework").ShortTextProperty<true>;
27
+ reason: import("@activepieces/pieces-framework").ShortTextProperty<false>;
28
+ }>;
29
+ export declare const PublicServicePlanController_suspend: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
30
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
31
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
32
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
33
+ }>, {
34
+ identifier: import("@activepieces/pieces-framework").ShortTextProperty<true>;
35
+ reason: import("@activepieces/pieces-framework").ShortTextProperty<false>;
36
+ }>;
37
+ export declare const PublicServicePlanController_archive: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
38
+ baseUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
39
+ clientId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
40
+ clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
41
+ }>, {
42
+ identifier: import("@activepieces/pieces-framework").ShortTextProperty<true>;
43
+ reason: import("@activepieces/pieces-framework").ShortTextProperty<false>;
44
+ }>;
45
+ //# sourceMappingURL=service-plans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-plans.d.ts","sourceRoot":"","sources":["service-plans.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kCAAkC;;;;;;;;;;;;EAoF7C,CAAC;AAEH,eAAO,MAAM,+BAA+B;;;;;;EA8B1C,CAAC;AAEH,eAAO,MAAM,oCAAoC;;;;;;;EAyC/C,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;EAyC9C,CAAC;AAEH,eAAO,MAAM,mCAAmC;;;;;;;EAyC9C,CAAC"}
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicServicePlanController_archive = exports.PublicServicePlanController_suspend = exports.PublicServicePlanController_activate = exports.PublicServicePlanController_get = exports.PublicServicePlanController_create = void 0;
4
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
5
+ const pieces_common_1 = require("@activepieces/pieces-common");
6
+ const auth_1 = require("../auth");
7
+ exports.PublicServicePlanController_create = (0, pieces_framework_1.createAction)({
8
+ name: 'PublicServicePlanController_create',
9
+ auth: auth_1.workbuddyAuth,
10
+ displayName: 'Create a Service Plan',
11
+ description: 'Creates only the Service Plan contract header. Lines and Tasks are added through their nested endpoints.',
12
+ props: {
13
+ integrationId: pieces_framework_1.Property.ShortText({
14
+ displayName: 'Integration Id',
15
+ description: 'integration ID',
16
+ required: true,
17
+ }),
18
+ name: pieces_framework_1.Property.ShortText({
19
+ displayName: 'Name',
20
+ description: 'Display name',
21
+ required: true,
22
+ }),
23
+ customerId: pieces_framework_1.Property.ShortText({
24
+ displayName: 'Customer Id',
25
+ description: 'Customer ID — use /crm/customers to look up',
26
+ required: true,
27
+ }),
28
+ siteId: pieces_framework_1.Property.ShortText({
29
+ displayName: 'Site Id',
30
+ description: 'Site ID — use /crm/sites to look up',
31
+ required: true,
32
+ }),
33
+ dateStart: pieces_framework_1.Property.ShortText({
34
+ displayName: 'Date Start',
35
+ description: '',
36
+ required: true,
37
+ }),
38
+ dateEnd: pieces_framework_1.Property.ShortText({
39
+ displayName: 'Date End',
40
+ description: '',
41
+ required: false,
42
+ }),
43
+ workingDays: pieces_framework_1.Property.StaticMultiSelectDropdown({
44
+ displayName: 'Working Days',
45
+ description: '',
46
+ required: false,
47
+ options: {
48
+ options: [
49
+ { label: 'Mon', value: 'Mon' },
50
+ { label: 'Tue', value: 'Tue' },
51
+ { label: 'Wed', value: 'Wed' },
52
+ { label: 'Thu', value: 'Thu' },
53
+ { label: 'Fri', value: 'Fri' },
54
+ { label: 'Sat', value: 'Sat' },
55
+ { label: 'Sun', value: 'Sun' },
56
+ ],
57
+ },
58
+ }),
59
+ },
60
+ async run(context) {
61
+ const token = await (0, auth_1.getAccessToken)(context.auth);
62
+ const baseUrl = context.auth.props.baseUrl;
63
+ const url = `${baseUrl}/api/v2/public/service-plans`;
64
+ const rawBody = {
65
+ integrationId: context.propsValue.integrationId,
66
+ name: context.propsValue.name,
67
+ customerId: context.propsValue.customerId,
68
+ siteId: context.propsValue.siteId,
69
+ dateStart: context.propsValue.dateStart,
70
+ dateEnd: context.propsValue.dateEnd,
71
+ workingDays: context.propsValue.workingDays,
72
+ };
73
+ const body = rawBody;
74
+ const response = await pieces_common_1.httpClient.sendRequest({
75
+ method: pieces_common_1.HttpMethod.POST,
76
+ url: `${baseUrl}/api/v2/public/service-plans`,
77
+ headers: {
78
+ Authorization: `Bearer ${token}`,
79
+ 'Content-Type': 'application/json',
80
+ 'X-WorkBuddy-Version': '2026-01',
81
+ },
82
+ body: body,
83
+ });
84
+ return response.body;
85
+ },
86
+ });
87
+ exports.PublicServicePlanController_get = (0, pieces_framework_1.createAction)({
88
+ name: 'PublicServicePlanController_get',
89
+ auth: auth_1.workbuddyAuth,
90
+ displayName: 'Get a Service Plan',
91
+ description: "Resolves a WorkBuddy ID first, then the authenticated caller's integrationId.",
92
+ props: {
93
+ identifier: pieces_framework_1.Property.ShortText({
94
+ displayName: 'Identifier',
95
+ description: 'WorkBuddy Service Plan ID or caller integrationId',
96
+ required: true,
97
+ }),
98
+ },
99
+ async run(context) {
100
+ const token = await (0, auth_1.getAccessToken)(context.auth);
101
+ const baseUrl = context.auth.props.baseUrl;
102
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}`;
103
+ const response = await pieces_common_1.httpClient.sendRequest({
104
+ method: pieces_common_1.HttpMethod.GET,
105
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}`,
106
+ headers: {
107
+ Authorization: `Bearer ${token}`,
108
+ 'Content-Type': 'application/json',
109
+ 'X-WorkBuddy-Version': '2026-01',
110
+ },
111
+ });
112
+ return response.body;
113
+ },
114
+ });
115
+ exports.PublicServicePlanController_activate = (0, pieces_framework_1.createAction)({
116
+ name: 'PublicServicePlanController_activate',
117
+ auth: auth_1.workbuddyAuth,
118
+ displayName: 'Start a Service Plan',
119
+ description: 'Validates and starts a fully assembled Service Plan.',
120
+ props: {
121
+ identifier: pieces_framework_1.Property.ShortText({
122
+ displayName: 'Identifier',
123
+ description: 'Entity ID or human-readable number',
124
+ required: true,
125
+ }),
126
+ reason: pieces_framework_1.Property.ShortText({
127
+ displayName: 'Reason',
128
+ description: 'Reason for the action (e.g. cancellation reason)',
129
+ required: false,
130
+ }),
131
+ },
132
+ async run(context) {
133
+ const token = await (0, auth_1.getAccessToken)(context.auth);
134
+ const baseUrl = context.auth.props.baseUrl;
135
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}/activate`;
136
+ const rawBody = {
137
+ reason: context.propsValue.reason,
138
+ };
139
+ const body = rawBody;
140
+ const response = await pieces_common_1.httpClient.sendRequest({
141
+ method: pieces_common_1.HttpMethod.POST,
142
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}/activate`,
143
+ headers: {
144
+ Authorization: `Bearer ${token}`,
145
+ 'Content-Type': 'application/json',
146
+ 'X-WorkBuddy-Version': '2026-01',
147
+ },
148
+ body: body,
149
+ });
150
+ return response.body;
151
+ },
152
+ });
153
+ exports.PublicServicePlanController_suspend = (0, pieces_framework_1.createAction)({
154
+ name: 'PublicServicePlanController_suspend',
155
+ auth: auth_1.workbuddyAuth,
156
+ displayName: 'Pause a Service Plan',
157
+ description: 'Stops future scheduled work while preserving history.',
158
+ props: {
159
+ identifier: pieces_framework_1.Property.ShortText({
160
+ displayName: 'Identifier',
161
+ description: 'Entity ID or human-readable number',
162
+ required: true,
163
+ }),
164
+ reason: pieces_framework_1.Property.ShortText({
165
+ displayName: 'Reason',
166
+ description: 'Reason for the action (e.g. cancellation reason)',
167
+ required: false,
168
+ }),
169
+ },
170
+ async run(context) {
171
+ const token = await (0, auth_1.getAccessToken)(context.auth);
172
+ const baseUrl = context.auth.props.baseUrl;
173
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}/suspend`;
174
+ const rawBody = {
175
+ reason: context.propsValue.reason,
176
+ };
177
+ const body = rawBody;
178
+ const response = await pieces_common_1.httpClient.sendRequest({
179
+ method: pieces_common_1.HttpMethod.POST,
180
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}/suspend`,
181
+ headers: {
182
+ Authorization: `Bearer ${token}`,
183
+ 'Content-Type': 'application/json',
184
+ 'X-WorkBuddy-Version': '2026-01',
185
+ },
186
+ body: body,
187
+ });
188
+ return response.body;
189
+ },
190
+ });
191
+ exports.PublicServicePlanController_archive = (0, pieces_framework_1.createAction)({
192
+ name: 'PublicServicePlanController_archive',
193
+ auth: auth_1.workbuddyAuth,
194
+ displayName: 'Archive a Service Plan',
195
+ description: 'Archives a paused Service Plan and reconciles future scheduled work.',
196
+ props: {
197
+ identifier: pieces_framework_1.Property.ShortText({
198
+ displayName: 'Identifier',
199
+ description: 'Entity ID or human-readable number',
200
+ required: true,
201
+ }),
202
+ reason: pieces_framework_1.Property.ShortText({
203
+ displayName: 'Reason',
204
+ description: 'Reason for the action (e.g. cancellation reason)',
205
+ required: false,
206
+ }),
207
+ },
208
+ async run(context) {
209
+ const token = await (0, auth_1.getAccessToken)(context.auth);
210
+ const baseUrl = context.auth.props.baseUrl;
211
+ const url = `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}/archive`;
212
+ const rawBody = {
213
+ reason: context.propsValue.reason,
214
+ };
215
+ const body = rawBody;
216
+ const response = await pieces_common_1.httpClient.sendRequest({
217
+ method: pieces_common_1.HttpMethod.POST,
218
+ url: `${baseUrl}/api/v2/public/service-plans/${context.propsValue.identifier}/archive`,
219
+ headers: {
220
+ Authorization: `Bearer ${token}`,
221
+ 'Content-Type': 'application/json',
222
+ 'X-WorkBuddy-Version': '2026-01',
223
+ },
224
+ body: body,
225
+ });
226
+ return response.body;
227
+ },
228
+ });
229
+ //# sourceMappingURL=service-plans.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-plans.js","sourceRoot":"","sources":["service-plans.ts"],"names":[],"mappings":"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"}