@workbuddy/piece-workbuddy-edge 1.0.0

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 (222) hide show
  1. package/package.json +24 -0
  2. package/src/index.d.ts +8 -0
  3. package/src/index.d.ts.map +1 -0
  4. package/src/index.js +199 -0
  5. package/src/index.js.map +1 -0
  6. package/src/index.ts +354 -0
  7. package/src/lib/actions/attachments.d.ts +17 -0
  8. package/src/lib/actions/attachments.d.ts.map +1 -0
  9. package/src/lib/actions/attachments.js +79 -0
  10. package/src/lib/actions/attachments.js.map +1 -0
  11. package/src/lib/actions/attachments.ts +85 -0
  12. package/src/lib/actions/crm->-companies.d.ts +16 -0
  13. package/src/lib/actions/crm->-companies.d.ts.map +1 -0
  14. package/src/lib/actions/crm->-companies.js +77 -0
  15. package/src/lib/actions/crm->-companies.js.map +1 -0
  16. package/src/lib/actions/crm->-companies.ts +84 -0
  17. package/src/lib/actions/crm->-contacts.d.ts +16 -0
  18. package/src/lib/actions/crm->-contacts.d.ts.map +1 -0
  19. package/src/lib/actions/crm->-contacts.js +77 -0
  20. package/src/lib/actions/crm->-contacts.js.map +1 -0
  21. package/src/lib/actions/crm->-contacts.ts +84 -0
  22. package/src/lib/actions/crm->-contractors.d.ts +16 -0
  23. package/src/lib/actions/crm->-contractors.d.ts.map +1 -0
  24. package/src/lib/actions/crm->-contractors.js +77 -0
  25. package/src/lib/actions/crm->-contractors.js.map +1 -0
  26. package/src/lib/actions/crm->-contractors.ts +84 -0
  27. package/src/lib/actions/crm->-customers.d.ts +35 -0
  28. package/src/lib/actions/crm->-customers.d.ts.map +1 -0
  29. package/src/lib/actions/crm->-customers.js +180 -0
  30. package/src/lib/actions/crm->-customers.js.map +1 -0
  31. package/src/lib/actions/crm->-customers.ts +203 -0
  32. package/src/lib/actions/crm->-employees.d.ts +16 -0
  33. package/src/lib/actions/crm->-employees.d.ts.map +1 -0
  34. package/src/lib/actions/crm->-employees.js +77 -0
  35. package/src/lib/actions/crm->-employees.js.map +1 -0
  36. package/src/lib/actions/crm->-employees.ts +84 -0
  37. package/src/lib/actions/crm->-external-users.d.ts +16 -0
  38. package/src/lib/actions/crm->-external-users.d.ts.map +1 -0
  39. package/src/lib/actions/crm->-external-users.js +77 -0
  40. package/src/lib/actions/crm->-external-users.js.map +1 -0
  41. package/src/lib/actions/crm->-external-users.ts +84 -0
  42. package/src/lib/actions/crm->-invites.d.ts +16 -0
  43. package/src/lib/actions/crm->-invites.d.ts.map +1 -0
  44. package/src/lib/actions/crm->-invites.js +77 -0
  45. package/src/lib/actions/crm->-invites.js.map +1 -0
  46. package/src/lib/actions/crm->-invites.ts +84 -0
  47. package/src/lib/actions/crm->-sites.d.ts +17 -0
  48. package/src/lib/actions/crm->-sites.d.ts.map +1 -0
  49. package/src/lib/actions/crm->-sites.js +86 -0
  50. package/src/lib/actions/crm->-sites.js.map +1 -0
  51. package/src/lib/actions/crm->-sites.ts +95 -0
  52. package/src/lib/actions/crm->-suppliers.d.ts +16 -0
  53. package/src/lib/actions/crm->-suppliers.d.ts.map +1 -0
  54. package/src/lib/actions/crm->-suppliers.js +77 -0
  55. package/src/lib/actions/crm->-suppliers.js.map +1 -0
  56. package/src/lib/actions/crm->-suppliers.ts +84 -0
  57. package/src/lib/actions/data-export.d.ts +11 -0
  58. package/src/lib/actions/data-export.d.ts.map +1 -0
  59. package/src/lib/actions/data-export.js +78 -0
  60. package/src/lib/actions/data-export.js.map +1 -0
  61. package/src/lib/actions/data-export.ts +82 -0
  62. package/src/lib/actions/index.d.ts +25 -0
  63. package/src/lib/actions/index.d.ts.map +1 -0
  64. package/src/lib/actions/index.js +41 -0
  65. package/src/lib/actions/index.js.map +1 -0
  66. package/src/lib/actions/index.ts +24 -0
  67. package/src/lib/actions/jobs->-activities.d.ts +87 -0
  68. package/src/lib/actions/jobs->-activities.d.ts.map +1 -0
  69. package/src/lib/actions/jobs->-activities.js +445 -0
  70. package/src/lib/actions/jobs->-activities.js.map +1 -0
  71. package/src/lib/actions/jobs->-activities.ts +473 -0
  72. package/src/lib/actions/jobs->-contacts.d.ts +31 -0
  73. package/src/lib/actions/jobs->-contacts.d.ts.map +1 -0
  74. package/src/lib/actions/jobs->-contacts.js +129 -0
  75. package/src/lib/actions/jobs->-contacts.js.map +1 -0
  76. package/src/lib/actions/jobs->-contacts.ts +141 -0
  77. package/src/lib/actions/jobs->-files.d.ts +31 -0
  78. package/src/lib/actions/jobs->-files.d.ts.map +1 -0
  79. package/src/lib/actions/jobs->-files.js +129 -0
  80. package/src/lib/actions/jobs->-files.js.map +1 -0
  81. package/src/lib/actions/jobs->-files.ts +141 -0
  82. package/src/lib/actions/jobs->-tasks.d.ts +75 -0
  83. package/src/lib/actions/jobs->-tasks.d.ts.map +1 -0
  84. package/src/lib/actions/jobs->-tasks.js +395 -0
  85. package/src/lib/actions/jobs->-tasks.js.map +1 -0
  86. package/src/lib/actions/jobs->-tasks.ts +417 -0
  87. package/src/lib/actions/jobs.d.ts +148 -0
  88. package/src/lib/actions/jobs.d.ts.map +1 -0
  89. package/src/lib/actions/jobs.js +800 -0
  90. package/src/lib/actions/jobs.js.map +1 -0
  91. package/src/lib/actions/jobs.ts +846 -0
  92. package/src/lib/actions/mcp-context.d.ts +16 -0
  93. package/src/lib/actions/mcp-context.d.ts.map +1 -0
  94. package/src/lib/actions/mcp-context.js +82 -0
  95. package/src/lib/actions/mcp-context.js.map +1 -0
  96. package/src/lib/actions/mcp-context.ts +86 -0
  97. package/src/lib/actions/mcp.d.ts +21 -0
  98. package/src/lib/actions/mcp.d.ts.map +1 -0
  99. package/src/lib/actions/mcp.js +104 -0
  100. package/src/lib/actions/mcp.js.map +1 -0
  101. package/src/lib/actions/mcp.ts +112 -0
  102. package/src/lib/actions/settings.d.ts +57 -0
  103. package/src/lib/actions/settings.d.ts.map +1 -0
  104. package/src/lib/actions/settings.js +257 -0
  105. package/src/lib/actions/settings.js.map +1 -0
  106. package/src/lib/actions/settings.ts +301 -0
  107. package/src/lib/actions/stages->-activities.d.ts +87 -0
  108. package/src/lib/actions/stages->-activities.d.ts.map +1 -0
  109. package/src/lib/actions/stages->-activities.js +445 -0
  110. package/src/lib/actions/stages->-activities.js.map +1 -0
  111. package/src/lib/actions/stages->-activities.ts +473 -0
  112. package/src/lib/actions/stages->-files.d.ts +31 -0
  113. package/src/lib/actions/stages->-files.d.ts.map +1 -0
  114. package/src/lib/actions/stages->-files.js +129 -0
  115. package/src/lib/actions/stages->-files.js.map +1 -0
  116. package/src/lib/actions/stages->-files.ts +141 -0
  117. package/src/lib/actions/stages->-resources.d.ts +58 -0
  118. package/src/lib/actions/stages->-resources.d.ts.map +1 -0
  119. package/src/lib/actions/stages->-resources.js +279 -0
  120. package/src/lib/actions/stages->-resources.js.map +1 -0
  121. package/src/lib/actions/stages->-resources.ts +302 -0
  122. package/src/lib/actions/stages->-tasks.d.ts +77 -0
  123. package/src/lib/actions/stages->-tasks.d.ts.map +1 -0
  124. package/src/lib/actions/stages->-tasks.js +405 -0
  125. package/src/lib/actions/stages->-tasks.js.map +1 -0
  126. package/src/lib/actions/stages->-tasks.ts +427 -0
  127. package/src/lib/actions/stages.d.ts +85 -0
  128. package/src/lib/actions/stages.d.ts.map +1 -0
  129. package/src/lib/actions/stages.js +417 -0
  130. package/src/lib/actions/stages.js.map +1 -0
  131. package/src/lib/actions/stages.ts +452 -0
  132. package/src/lib/actions/webhooks-v2.d.ts +72 -0
  133. package/src/lib/actions/webhooks-v2.d.ts.map +1 -0
  134. package/src/lib/actions/webhooks-v2.js +297 -0
  135. package/src/lib/actions/webhooks-v2.js.map +1 -0
  136. package/src/lib/actions/webhooks-v2.ts +337 -0
  137. package/src/lib/actions/webhooks.d.ts +48 -0
  138. package/src/lib/actions/webhooks.d.ts.map +1 -0
  139. package/src/lib/actions/webhooks.js +292 -0
  140. package/src/lib/actions/webhooks.js.map +1 -0
  141. package/src/lib/actions/webhooks.ts +318 -0
  142. package/src/lib/auth.d.ts +18 -0
  143. package/src/lib/auth.d.ts.map +1 -0
  144. package/src/lib/auth.js +77 -0
  145. package/src/lib/auth.js.map +1 -0
  146. package/src/lib/auth.ts +84 -0
  147. package/src/lib/common/index.d.ts +11 -0
  148. package/src/lib/common/index.d.ts.map +1 -0
  149. package/src/lib/common/index.js +8 -0
  150. package/src/lib/common/index.js.map +1 -0
  151. package/src/lib/common/index.ts +12 -0
  152. package/src/lib/triggers/activity.d.ts +77 -0
  153. package/src/lib/triggers/activity.d.ts.map +1 -0
  154. package/src/lib/triggers/activity.js +241 -0
  155. package/src/lib/triggers/activity.js.map +1 -0
  156. package/src/lib/triggers/activity.ts +261 -0
  157. package/src/lib/triggers/allocation.d.ts +53 -0
  158. package/src/lib/triggers/allocation.d.ts.map +1 -0
  159. package/src/lib/triggers/allocation.js +181 -0
  160. package/src/lib/triggers/allocation.js.map +1 -0
  161. package/src/lib/triggers/allocation.ts +198 -0
  162. package/src/lib/triggers/bill.d.ts +102 -0
  163. package/src/lib/triggers/bill.d.ts.map +1 -0
  164. package/src/lib/triggers/bill.js +327 -0
  165. package/src/lib/triggers/bill.js.map +1 -0
  166. package/src/lib/triggers/bill.ts +355 -0
  167. package/src/lib/triggers/form.d.ts +19 -0
  168. package/src/lib/triggers/form.d.ts.map +1 -0
  169. package/src/lib/triggers/form.js +65 -0
  170. package/src/lib/triggers/form.js.map +1 -0
  171. package/src/lib/triggers/form.ts +68 -0
  172. package/src/lib/triggers/index.d.ts +10 -0
  173. package/src/lib/triggers/index.d.ts.map +1 -0
  174. package/src/lib/triggers/index.js +26 -0
  175. package/src/lib/triggers/index.js.map +1 -0
  176. package/src/lib/triggers/index.ts +9 -0
  177. package/src/lib/triggers/invoice.d.ts +102 -0
  178. package/src/lib/triggers/invoice.d.ts.map +1 -0
  179. package/src/lib/triggers/invoice.js +327 -0
  180. package/src/lib/triggers/invoice.js.map +1 -0
  181. package/src/lib/triggers/invoice.ts +355 -0
  182. package/src/lib/triggers/item.d.ts +53 -0
  183. package/src/lib/triggers/item.d.ts.map +1 -0
  184. package/src/lib/triggers/item.js +181 -0
  185. package/src/lib/triggers/item.js.map +1 -0
  186. package/src/lib/triggers/item.ts +198 -0
  187. package/src/lib/triggers/job.d.ts +102 -0
  188. package/src/lib/triggers/job.d.ts.map +1 -0
  189. package/src/lib/triggers/job.js +419 -0
  190. package/src/lib/triggers/job.js.map +1 -0
  191. package/src/lib/triggers/job.ts +447 -0
  192. package/src/lib/triggers/lead.d.ts +102 -0
  193. package/src/lib/triggers/lead.d.ts.map +1 -0
  194. package/src/lib/triggers/lead.js +319 -0
  195. package/src/lib/triggers/lead.js.map +1 -0
  196. package/src/lib/triggers/lead.ts +347 -0
  197. package/src/lib/triggers/opportunity.d.ts +102 -0
  198. package/src/lib/triggers/opportunity.d.ts.map +1 -0
  199. package/src/lib/triggers/opportunity.js +319 -0
  200. package/src/lib/triggers/opportunity.js.map +1 -0
  201. package/src/lib/triggers/opportunity.ts +347 -0
  202. package/src/lib/triggers/quote.d.ts +102 -0
  203. package/src/lib/triggers/quote.d.ts.map +1 -0
  204. package/src/lib/triggers/quote.js +327 -0
  205. package/src/lib/triggers/quote.js.map +1 -0
  206. package/src/lib/triggers/quote.ts +355 -0
  207. package/src/lib/triggers/site.d.ts +19 -0
  208. package/src/lib/triggers/site.d.ts.map +1 -0
  209. package/src/lib/triggers/site.js +65 -0
  210. package/src/lib/triggers/site.js.map +1 -0
  211. package/src/lib/triggers/site.ts +68 -0
  212. package/src/lib/triggers/stage.d.ts +102 -0
  213. package/src/lib/triggers/stage.d.ts.map +1 -0
  214. package/src/lib/triggers/stage.js +487 -0
  215. package/src/lib/triggers/stage.js.map +1 -0
  216. package/src/lib/triggers/stage.ts +515 -0
  217. package/src/lib/triggers/task.d.ts +102 -0
  218. package/src/lib/triggers/task.d.ts.map +1 -0
  219. package/src/lib/triggers/task.js +323 -0
  220. package/src/lib/triggers/task.js.map +1 -0
  221. package/src/lib/triggers/task.ts +351 -0
  222. package/src/lib/workbuddy.svg +5 -0
@@ -0,0 +1,800 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublicApiJobController_getStageItem = exports.PublicApiJobController_getStageItems = exports.PublicApiJobController_getJobStage = exports.PublicApiJobController_getJobStages = exports.PublicApiJobController_dispatch = exports.PublicApiJobController_update = exports.PublicApiJobController_create = exports.PublicApiJobController_delete = exports.PublicApiJobController_get = exports.PublicApiJobController_search = 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.PublicApiJobController_search = (0, pieces_framework_1.createAction)({
8
+ name: 'PublicApiJobController_search',
9
+ auth: auth_1.workbuddyAuth,
10
+ displayName: 'Search jobs or stages with complex filters',
11
+ description: "Advanced search endpoint for complex queries. Use mode='jobs' (default) to search jobs, or mode='stages' to search stages with embedded job context. Supports multiple filters, date ranges, and field projection via JSON body.",
12
+ props: {
13
+ mode: pieces_framework_1.Property.StaticDropdown({
14
+ displayName: 'Mode',
15
+ description: '',
16
+ required: false,
17
+ options: {
18
+ options: [
19
+ { label: 'jobs', value: 'jobs' },
20
+ { label: 'stages', value: 'stages' },
21
+ ],
22
+ },
23
+ }),
24
+ limit: pieces_framework_1.Property.Number({
25
+ displayName: 'Limit',
26
+ description: '',
27
+ required: false,
28
+ defaultValue: 50,
29
+ }),
30
+ cursor: pieces_framework_1.Property.ShortText({
31
+ displayName: 'Cursor',
32
+ description: '',
33
+ required: false,
34
+ }),
35
+ sortBy: pieces_framework_1.Property.StaticDropdown({
36
+ displayName: 'Sort By',
37
+ description: '',
38
+ required: false,
39
+ options: {
40
+ options: [
41
+ { label: 'created_at', value: 'created_at' },
42
+ { label: 'due_date', value: 'due_date' },
43
+ { label: 'completed_date', value: 'completed_date' },
44
+ { label: 'priority', value: 'priority' },
45
+ ],
46
+ },
47
+ }),
48
+ sortDirection: pieces_framework_1.Property.StaticDropdown({
49
+ displayName: 'Sort Direction',
50
+ description: '',
51
+ required: false,
52
+ options: {
53
+ options: [
54
+ { label: 'asc', value: 'asc' },
55
+ { label: 'desc', value: 'desc' },
56
+ ],
57
+ },
58
+ }),
59
+ status: pieces_framework_1.Property.Json({
60
+ displayName: 'Status',
61
+ description: '',
62
+ required: false,
63
+ defaultValue: [],
64
+ }),
65
+ customer: pieces_framework_1.Property.Array({
66
+ displayName: 'Customer',
67
+ description: '',
68
+ required: false,
69
+ }),
70
+ site: pieces_framework_1.Property.Array({
71
+ displayName: 'Site',
72
+ description: '',
73
+ required: false,
74
+ }),
75
+ type: pieces_framework_1.Property.Array({
76
+ displayName: 'Type',
77
+ description: '',
78
+ required: false,
79
+ }),
80
+ priority: pieces_framework_1.Property.Array({
81
+ displayName: 'Priority',
82
+ description: '',
83
+ required: false,
84
+ }),
85
+ owner: pieces_framework_1.Property.Array({
86
+ displayName: 'Owner',
87
+ description: '',
88
+ required: false,
89
+ }),
90
+ fieldSupervisor: pieces_framework_1.Property.Array({
91
+ displayName: 'Field Supervisor',
92
+ description: '',
93
+ required: false,
94
+ }),
95
+ zone: pieces_framework_1.Property.Array({
96
+ displayName: 'Zone',
97
+ description: '',
98
+ required: false,
99
+ }),
100
+ tag: pieces_framework_1.Property.Array({
101
+ displayName: 'Tag',
102
+ description: '',
103
+ required: false,
104
+ }),
105
+ priceBook: pieces_framework_1.Property.Array({
106
+ displayName: 'Price Book',
107
+ description: '',
108
+ required: false,
109
+ }),
110
+ billingCompany: pieces_framework_1.Property.Array({
111
+ displayName: 'Billing Company',
112
+ description: '',
113
+ required: false,
114
+ }),
115
+ resource: pieces_framework_1.Property.Array({
116
+ displayName: 'Resource',
117
+ description: '',
118
+ required: false,
119
+ }),
120
+ workCategory: pieces_framework_1.Property.Array({
121
+ displayName: 'Work Category',
122
+ description: '',
123
+ required: false,
124
+ }),
125
+ stageStatus: pieces_framework_1.Property.Json({
126
+ displayName: 'Stage Status',
127
+ description: '',
128
+ required: false,
129
+ defaultValue: [],
130
+ }),
131
+ search: pieces_framework_1.Property.ShortText({
132
+ displayName: 'Search',
133
+ description: '',
134
+ required: false,
135
+ }),
136
+ createdDate: pieces_framework_1.Property.Json({
137
+ displayName: 'Created Date',
138
+ description: '',
139
+ required: false,
140
+ }),
141
+ dueDate: pieces_framework_1.Property.Json({
142
+ displayName: 'Due Date',
143
+ description: '',
144
+ required: false,
145
+ }),
146
+ completedDate: pieces_framework_1.Property.Json({
147
+ displayName: 'Completed Date',
148
+ description: '',
149
+ required: false,
150
+ }),
151
+ finalisedDate: pieces_framework_1.Property.Json({
152
+ displayName: 'Finalised Date',
153
+ description: '',
154
+ required: false,
155
+ }),
156
+ stageDueDate: pieces_framework_1.Property.Json({
157
+ displayName: 'Stage Due Date',
158
+ description: '',
159
+ required: false,
160
+ }),
161
+ stageCompletedDate: pieces_framework_1.Property.Json({
162
+ displayName: 'Stage Completed Date',
163
+ description: '',
164
+ required: false,
165
+ }),
166
+ fields: pieces_framework_1.Property.Array({
167
+ displayName: 'Fields',
168
+ description: '',
169
+ required: false,
170
+ }),
171
+ include: pieces_framework_1.Property.StaticMultiSelectDropdown({
172
+ displayName: 'Include',
173
+ description: '',
174
+ required: false,
175
+ options: {
176
+ options: [
177
+ { label: 'items', value: 'items' },
178
+ { label: 'stages', value: 'stages' },
179
+ ],
180
+ },
181
+ }),
182
+ },
183
+ async run(context) {
184
+ const token = await (0, auth_1.getAccessToken)(context.auth);
185
+ const baseUrl = context.auth.props.baseUrl;
186
+ const url = `${baseUrl}/api/v2/public/jobs/search`;
187
+ const body = {
188
+ mode: context.propsValue.mode,
189
+ limit: context.propsValue.limit,
190
+ cursor: context.propsValue.cursor,
191
+ sortBy: context.propsValue.sortBy,
192
+ sortDirection: context.propsValue.sortDirection,
193
+ status: context.propsValue.status,
194
+ customer: context.propsValue.customer,
195
+ site: context.propsValue.site,
196
+ type: context.propsValue.type,
197
+ priority: context.propsValue.priority,
198
+ owner: context.propsValue.owner,
199
+ fieldSupervisor: context.propsValue.fieldSupervisor,
200
+ zone: context.propsValue.zone,
201
+ tag: context.propsValue.tag,
202
+ priceBook: context.propsValue.priceBook,
203
+ billingCompany: context.propsValue.billingCompany,
204
+ resource: context.propsValue.resource,
205
+ workCategory: context.propsValue.workCategory,
206
+ stageStatus: context.propsValue.stageStatus,
207
+ search: context.propsValue.search,
208
+ createdDate: context.propsValue.createdDate,
209
+ dueDate: context.propsValue.dueDate,
210
+ completedDate: context.propsValue.completedDate,
211
+ finalisedDate: context.propsValue.finalisedDate,
212
+ stageDueDate: context.propsValue.stageDueDate,
213
+ stageCompletedDate: context.propsValue.stageCompletedDate,
214
+ fields: context.propsValue.fields,
215
+ include: context.propsValue.include,
216
+ };
217
+ const response = await pieces_common_1.httpClient.sendRequest({
218
+ method: pieces_common_1.HttpMethod.POST,
219
+ url: `${baseUrl}/api/v2/public/jobs/search`,
220
+ headers: {
221
+ Authorization: `Bearer ${token}`,
222
+ 'Content-Type': 'application/json',
223
+ 'X-WorkBuddy-Version': '2026-01',
224
+ },
225
+ body: body,
226
+ });
227
+ return response.body;
228
+ },
229
+ });
230
+ exports.PublicApiJobController_get = (0, pieces_framework_1.createAction)({
231
+ name: 'PublicApiJobController_get',
232
+ auth: auth_1.workbuddyAuth,
233
+ displayName: 'Get job by ID or job number',
234
+ description: 'Retrieve a single job by its ID or human-readable job number.',
235
+ props: {
236
+ identifier: pieces_framework_1.Property.ShortText({
237
+ displayName: 'Identifier',
238
+ description: 'Job ID (MongoDB ObjectId) or job number (e.g., JOB-12345)',
239
+ required: true,
240
+ }),
241
+ },
242
+ async run(context) {
243
+ const token = await (0, auth_1.getAccessToken)(context.auth);
244
+ const baseUrl = context.auth.props.baseUrl;
245
+ const url = `${baseUrl}/api/v2/public/jobs/${context.propsValue.identifier}`;
246
+ const response = await pieces_common_1.httpClient.sendRequest({
247
+ method: pieces_common_1.HttpMethod.GET,
248
+ url: `${baseUrl}/api/v2/public/jobs/${context.propsValue.identifier}`,
249
+ headers: {
250
+ Authorization: `Bearer ${token}`,
251
+ 'Content-Type': 'application/json',
252
+ 'X-WorkBuddy-Version': '2026-01',
253
+ },
254
+ });
255
+ return response.body;
256
+ },
257
+ });
258
+ exports.PublicApiJobController_delete = (0, pieces_framework_1.createAction)({
259
+ name: 'PublicApiJobController_delete',
260
+ auth: auth_1.workbuddyAuth,
261
+ displayName: 'Cancel a job',
262
+ description: "Cancel a job by ID or job number. Jobs cannot be permanently deleted, only cancelled. This changes the job status to 'cancelled'. A reason must be provided.",
263
+ props: {
264
+ identifier: pieces_framework_1.Property.ShortText({
265
+ displayName: 'Identifier',
266
+ description: 'Job ID or job number (e.g., JOB-00001)',
267
+ required: true,
268
+ }),
269
+ reason: pieces_framework_1.Property.ShortText({
270
+ displayName: 'Reason',
271
+ description: '',
272
+ required: true,
273
+ }),
274
+ },
275
+ async run(context) {
276
+ const token = await (0, auth_1.getAccessToken)(context.auth);
277
+ const baseUrl = context.auth.props.baseUrl;
278
+ const url = `${baseUrl}/api/v2/public/jobs/${context.propsValue.identifier}`;
279
+ const response = await pieces_common_1.httpClient.sendRequest({
280
+ method: pieces_common_1.HttpMethod.DELETE,
281
+ url: `${baseUrl}/api/v2/public/jobs/${context.propsValue.identifier}`,
282
+ headers: {
283
+ Authorization: `Bearer ${token}`,
284
+ 'Content-Type': 'application/json',
285
+ 'X-WorkBuddy-Version': '2026-01',
286
+ },
287
+ });
288
+ return response.body;
289
+ },
290
+ });
291
+ exports.PublicApiJobController_create = (0, pieces_framework_1.createAction)({
292
+ name: 'PublicApiJobController_create',
293
+ auth: auth_1.workbuddyAuth,
294
+ displayName: 'Create a new job',
295
+ description: 'Create a new job with the specified details. Requires either customerId or inline customer object.',
296
+ props: {
297
+ name: pieces_framework_1.Property.ShortText({
298
+ displayName: 'Name',
299
+ description: '',
300
+ required: false,
301
+ }),
302
+ description: pieces_framework_1.Property.LongText({
303
+ displayName: 'Description',
304
+ description: '',
305
+ required: false,
306
+ }),
307
+ customerId: pieces_framework_1.Property.ShortText({
308
+ displayName: 'Customer Id',
309
+ description: '',
310
+ required: false,
311
+ }),
312
+ customer: pieces_framework_1.Property.Json({
313
+ displayName: 'Customer',
314
+ description: '',
315
+ required: false,
316
+ }),
317
+ siteId: pieces_framework_1.Property.ShortText({
318
+ displayName: 'Site Id',
319
+ description: '',
320
+ required: false,
321
+ }),
322
+ site: pieces_framework_1.Property.Json({
323
+ displayName: 'Site',
324
+ description: '',
325
+ required: false,
326
+ }),
327
+ contactId: pieces_framework_1.Property.ShortText({
328
+ displayName: 'Contact Id',
329
+ description: '',
330
+ required: false,
331
+ }),
332
+ contact: pieces_framework_1.Property.Json({
333
+ displayName: 'Contact',
334
+ description: '',
335
+ required: false,
336
+ }),
337
+ typeId: pieces_framework_1.Property.ShortText({
338
+ displayName: 'Type Id',
339
+ description: '',
340
+ required: false,
341
+ }),
342
+ priorityId: pieces_framework_1.Property.ShortText({
343
+ displayName: 'Priority Id',
344
+ description: '',
345
+ required: false,
346
+ }),
347
+ priceBookId: pieces_framework_1.Property.ShortText({
348
+ displayName: 'Price Book Id',
349
+ description: '',
350
+ required: false,
351
+ }),
352
+ ownerId: pieces_framework_1.Property.ShortText({
353
+ displayName: 'Owner Id',
354
+ description: '',
355
+ required: false,
356
+ }),
357
+ fieldSupervisorId: pieces_framework_1.Property.ShortText({
358
+ displayName: 'Field Supervisor Id',
359
+ description: '',
360
+ required: false,
361
+ }),
362
+ zoneId: pieces_framework_1.Property.ShortText({
363
+ displayName: 'Zone Id',
364
+ description: '',
365
+ required: false,
366
+ }),
367
+ tagIds: pieces_framework_1.Property.Array({
368
+ displayName: 'Tag Ids',
369
+ description: '',
370
+ required: false,
371
+ }),
372
+ notes: pieces_framework_1.Property.LongText({
373
+ displayName: 'Notes',
374
+ description: '',
375
+ required: false,
376
+ }),
377
+ reference: pieces_framework_1.Property.ShortText({
378
+ displayName: 'Reference',
379
+ description: '',
380
+ required: false,
381
+ }),
382
+ customerWO: pieces_framework_1.Property.ShortText({
383
+ displayName: 'Customer W O',
384
+ description: '',
385
+ required: false,
386
+ }),
387
+ customerPO: pieces_framework_1.Property.ShortText({
388
+ displayName: 'Customer P O',
389
+ description: '',
390
+ required: false,
391
+ }),
392
+ templateId: pieces_framework_1.Property.ShortText({
393
+ displayName: 'Template Id',
394
+ description: '',
395
+ required: false,
396
+ }),
397
+ startDate: pieces_framework_1.Property.DateTime({
398
+ displayName: 'Start Date',
399
+ description: '',
400
+ required: false,
401
+ }),
402
+ dueDate: pieces_framework_1.Property.DateTime({
403
+ displayName: 'Due Date',
404
+ description: '',
405
+ required: false,
406
+ }),
407
+ customFields: pieces_framework_1.Property.Json({
408
+ displayName: 'Custom Fields',
409
+ description: '',
410
+ required: false,
411
+ }),
412
+ },
413
+ async run(context) {
414
+ const token = await (0, auth_1.getAccessToken)(context.auth);
415
+ const baseUrl = context.auth.props.baseUrl;
416
+ const url = `${baseUrl}/api/v2/public/jobs`;
417
+ const body = {
418
+ name: context.propsValue.name,
419
+ description: context.propsValue.description,
420
+ customerId: context.propsValue.customerId,
421
+ customer: context.propsValue.customer,
422
+ siteId: context.propsValue.siteId,
423
+ site: context.propsValue.site,
424
+ contactId: context.propsValue.contactId,
425
+ contact: context.propsValue.contact,
426
+ typeId: context.propsValue.typeId,
427
+ priorityId: context.propsValue.priorityId,
428
+ priceBookId: context.propsValue.priceBookId,
429
+ ownerId: context.propsValue.ownerId,
430
+ fieldSupervisorId: context.propsValue.fieldSupervisorId,
431
+ zoneId: context.propsValue.zoneId,
432
+ tagIds: context.propsValue.tagIds,
433
+ notes: context.propsValue.notes,
434
+ reference: context.propsValue.reference,
435
+ customerWO: context.propsValue.customerWO,
436
+ customerPO: context.propsValue.customerPO,
437
+ templateId: context.propsValue.templateId,
438
+ startDate: context.propsValue.startDate,
439
+ dueDate: context.propsValue.dueDate,
440
+ customFields: context.propsValue.customFields,
441
+ };
442
+ const response = await pieces_common_1.httpClient.sendRequest({
443
+ method: pieces_common_1.HttpMethod.POST,
444
+ url: `${baseUrl}/api/v2/public/jobs`,
445
+ headers: {
446
+ Authorization: `Bearer ${token}`,
447
+ 'Content-Type': 'application/json',
448
+ 'X-WorkBuddy-Version': '2026-01',
449
+ },
450
+ body: body,
451
+ });
452
+ return response.body;
453
+ },
454
+ });
455
+ exports.PublicApiJobController_update = (0, pieces_framework_1.createAction)({
456
+ name: 'PublicApiJobController_update',
457
+ auth: auth_1.workbuddyAuth,
458
+ displayName: 'Update a job',
459
+ description: 'Partially update a job. Only provided fields will be modified.',
460
+ props: {
461
+ id: pieces_framework_1.Property.ShortText({
462
+ displayName: 'Id',
463
+ description: 'Job ID',
464
+ required: true,
465
+ }),
466
+ updatedAt: pieces_framework_1.Property.DateTime({
467
+ displayName: 'Updated At',
468
+ description: '',
469
+ required: false,
470
+ }),
471
+ name: pieces_framework_1.Property.ShortText({
472
+ displayName: 'Name',
473
+ description: '',
474
+ required: false,
475
+ }),
476
+ description: pieces_framework_1.Property.LongText({
477
+ displayName: 'Description',
478
+ description: '',
479
+ required: false,
480
+ }),
481
+ siteId: pieces_framework_1.Property.ShortText({
482
+ displayName: 'Site Id',
483
+ description: '',
484
+ required: false,
485
+ }),
486
+ contactId: pieces_framework_1.Property.ShortText({
487
+ displayName: 'Contact Id',
488
+ description: '',
489
+ required: false,
490
+ }),
491
+ typeId: pieces_framework_1.Property.ShortText({
492
+ displayName: 'Type Id',
493
+ description: '',
494
+ required: false,
495
+ }),
496
+ priorityId: pieces_framework_1.Property.ShortText({
497
+ displayName: 'Priority Id',
498
+ description: '',
499
+ required: false,
500
+ }),
501
+ priceBookId: pieces_framework_1.Property.ShortText({
502
+ displayName: 'Price Book Id',
503
+ description: '',
504
+ required: false,
505
+ }),
506
+ ownerId: pieces_framework_1.Property.ShortText({
507
+ displayName: 'Owner Id',
508
+ description: '',
509
+ required: false,
510
+ }),
511
+ fieldSupervisorId: pieces_framework_1.Property.ShortText({
512
+ displayName: 'Field Supervisor Id',
513
+ description: '',
514
+ required: false,
515
+ }),
516
+ zoneId: pieces_framework_1.Property.ShortText({
517
+ displayName: 'Zone Id',
518
+ description: '',
519
+ required: false,
520
+ }),
521
+ tagIds: pieces_framework_1.Property.Array({
522
+ displayName: 'Tag Ids',
523
+ description: '',
524
+ required: false,
525
+ }),
526
+ notes: pieces_framework_1.Property.LongText({
527
+ displayName: 'Notes',
528
+ description: '',
529
+ required: false,
530
+ }),
531
+ reference: pieces_framework_1.Property.ShortText({
532
+ displayName: 'Reference',
533
+ description: '',
534
+ required: false,
535
+ }),
536
+ customerWO: pieces_framework_1.Property.ShortText({
537
+ displayName: 'Customer W O',
538
+ description: '',
539
+ required: false,
540
+ }),
541
+ customerPO: pieces_framework_1.Property.ShortText({
542
+ displayName: 'Customer P O',
543
+ description: '',
544
+ required: false,
545
+ }),
546
+ startDate: pieces_framework_1.Property.DateTime({
547
+ displayName: 'Start Date',
548
+ description: '',
549
+ required: false,
550
+ }),
551
+ dueDate: pieces_framework_1.Property.DateTime({
552
+ displayName: 'Due Date',
553
+ description: '',
554
+ required: false,
555
+ }),
556
+ customFields: pieces_framework_1.Property.Json({
557
+ displayName: 'Custom Fields',
558
+ description: '',
559
+ required: false,
560
+ }),
561
+ },
562
+ async run(context) {
563
+ const token = await (0, auth_1.getAccessToken)(context.auth);
564
+ const baseUrl = context.auth.props.baseUrl;
565
+ const url = `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}`;
566
+ // Build body with only defined values (for partial updates)
567
+ const rawBody = {
568
+ updatedAt: context.propsValue.updatedAt,
569
+ name: context.propsValue.name,
570
+ description: context.propsValue.description,
571
+ siteId: context.propsValue.siteId,
572
+ contactId: context.propsValue.contactId,
573
+ typeId: context.propsValue.typeId,
574
+ priorityId: context.propsValue.priorityId,
575
+ priceBookId: context.propsValue.priceBookId,
576
+ ownerId: context.propsValue.ownerId,
577
+ fieldSupervisorId: context.propsValue.fieldSupervisorId,
578
+ zoneId: context.propsValue.zoneId,
579
+ tagIds: context.propsValue.tagIds,
580
+ notes: context.propsValue.notes,
581
+ reference: context.propsValue.reference,
582
+ customerWO: context.propsValue.customerWO,
583
+ customerPO: context.propsValue.customerPO,
584
+ startDate: context.propsValue.startDate,
585
+ dueDate: context.propsValue.dueDate,
586
+ customFields: context.propsValue.customFields,
587
+ };
588
+ const body = Object.fromEntries(Object.entries(rawBody).filter(([_, v]) => v !== undefined && v !== null && v !== ''));
589
+ const response = await pieces_common_1.httpClient.sendRequest({
590
+ method: pieces_common_1.HttpMethod.PATCH,
591
+ url: `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}`,
592
+ headers: {
593
+ Authorization: `Bearer ${token}`,
594
+ 'Content-Type': 'application/json',
595
+ 'X-WorkBuddy-Version': '2026-01',
596
+ },
597
+ body: body,
598
+ });
599
+ return response.body;
600
+ },
601
+ });
602
+ exports.PublicApiJobController_dispatch = (0, pieces_framework_1.createAction)({
603
+ name: 'PublicApiJobController_dispatch',
604
+ auth: auth_1.workbuddyAuth,
605
+ displayName: 'Dispatch a job',
606
+ description: 'Change job status to dispatched, making it ready for field work.',
607
+ props: {
608
+ id: pieces_framework_1.Property.ShortText({
609
+ displayName: 'Id',
610
+ description: 'Job ID',
611
+ required: true,
612
+ }),
613
+ },
614
+ async run(context) {
615
+ const token = await (0, auth_1.getAccessToken)(context.auth);
616
+ const baseUrl = context.auth.props.baseUrl;
617
+ const url = `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}/dispatch`;
618
+ const response = await pieces_common_1.httpClient.sendRequest({
619
+ method: pieces_common_1.HttpMethod.POST,
620
+ url: `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}/dispatch`,
621
+ headers: {
622
+ Authorization: `Bearer ${token}`,
623
+ 'Content-Type': 'application/json',
624
+ 'X-WorkBuddy-Version': '2026-01',
625
+ },
626
+ });
627
+ return response.body;
628
+ },
629
+ });
630
+ exports.PublicApiJobController_getJobStages = (0, pieces_framework_1.createAction)({
631
+ name: 'PublicApiJobController_getJobStages',
632
+ auth: auth_1.workbuddyAuth,
633
+ displayName: 'List job stages',
634
+ description: 'Get all stages (work orders) for a job.',
635
+ props: {
636
+ id: pieces_framework_1.Property.ShortText({
637
+ displayName: 'Id',
638
+ description: 'Job ID',
639
+ required: true,
640
+ }),
641
+ cursor: pieces_framework_1.Property.ShortText({
642
+ displayName: 'Cursor',
643
+ description: 'Pagination cursor from previous response',
644
+ required: false,
645
+ }),
646
+ limit: pieces_framework_1.Property.Number({
647
+ displayName: 'Limit',
648
+ description: 'Maximum results to return (1-200)',
649
+ required: false,
650
+ }),
651
+ },
652
+ async run(context) {
653
+ const token = await (0, auth_1.getAccessToken)(context.auth);
654
+ const baseUrl = context.auth.props.baseUrl;
655
+ const url = `${baseUrl}/jobs/{id}/stages`;
656
+ const queryParams = new URLSearchParams();
657
+ if (context.propsValue.cursor !== undefined &&
658
+ context.propsValue.cursor !== null &&
659
+ context.propsValue.cursor !== '')
660
+ queryParams.append('cursor', String(context.propsValue.cursor));
661
+ if (context.propsValue.limit !== undefined && context.propsValue.limit !== null)
662
+ queryParams.append('limit', String(context.propsValue.limit));
663
+ const queryString = queryParams.toString();
664
+ const urlWithQuery = queryString ? `${url}?${queryString}` : url;
665
+ const response = await pieces_common_1.httpClient.sendRequest({
666
+ method: pieces_common_1.HttpMethod.GET,
667
+ url: urlWithQuery,
668
+ headers: {
669
+ Authorization: `Bearer ${token}`,
670
+ 'Content-Type': 'application/json',
671
+ 'X-WorkBuddy-Version': '2026-01',
672
+ },
673
+ });
674
+ return response.body;
675
+ },
676
+ });
677
+ exports.PublicApiJobController_getJobStage = (0, pieces_framework_1.createAction)({
678
+ name: 'PublicApiJobController_getJobStage',
679
+ auth: auth_1.workbuddyAuth,
680
+ displayName: 'Get job stage',
681
+ description: 'Get a specific stage within a job.',
682
+ props: {
683
+ id: pieces_framework_1.Property.ShortText({
684
+ displayName: 'Id',
685
+ description: 'Job ID',
686
+ required: true,
687
+ }),
688
+ stageId: pieces_framework_1.Property.ShortText({
689
+ displayName: 'Stage Id',
690
+ description: 'Stage ID',
691
+ required: true,
692
+ }),
693
+ },
694
+ async run(context) {
695
+ const token = await (0, auth_1.getAccessToken)(context.auth);
696
+ const baseUrl = context.auth.props.baseUrl;
697
+ const url = `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}/stages/${context.propsValue.stageId}`;
698
+ const response = await pieces_common_1.httpClient.sendRequest({
699
+ method: pieces_common_1.HttpMethod.GET,
700
+ url: `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}/stages/${context.propsValue.stageId}`,
701
+ headers: {
702
+ Authorization: `Bearer ${token}`,
703
+ 'Content-Type': 'application/json',
704
+ 'X-WorkBuddy-Version': '2026-01',
705
+ },
706
+ });
707
+ return response.body;
708
+ },
709
+ });
710
+ exports.PublicApiJobController_getStageItems = (0, pieces_framework_1.createAction)({
711
+ name: 'PublicApiJobController_getStageItems',
712
+ auth: auth_1.workbuddyAuth,
713
+ displayName: 'List stage items',
714
+ description: 'Get all items (line items) for a stage.',
715
+ props: {
716
+ id: pieces_framework_1.Property.ShortText({
717
+ displayName: 'Id',
718
+ description: 'Job ID',
719
+ required: true,
720
+ }),
721
+ stageId: pieces_framework_1.Property.ShortText({
722
+ displayName: 'Stage Id',
723
+ description: 'Stage ID',
724
+ required: true,
725
+ }),
726
+ cursor: pieces_framework_1.Property.ShortText({
727
+ displayName: 'Cursor',
728
+ description: 'Pagination cursor from previous response',
729
+ required: false,
730
+ }),
731
+ limit: pieces_framework_1.Property.Number({
732
+ displayName: 'Limit',
733
+ description: 'Maximum results to return (1-200)',
734
+ required: false,
735
+ }),
736
+ },
737
+ async run(context) {
738
+ const token = await (0, auth_1.getAccessToken)(context.auth);
739
+ const baseUrl = context.auth.props.baseUrl;
740
+ const url = `${baseUrl}/jobs/{id}/stages/{stageId}/items`;
741
+ const queryParams = new URLSearchParams();
742
+ if (context.propsValue.cursor !== undefined &&
743
+ context.propsValue.cursor !== null &&
744
+ context.propsValue.cursor !== '')
745
+ queryParams.append('cursor', String(context.propsValue.cursor));
746
+ if (context.propsValue.limit !== undefined && context.propsValue.limit !== null)
747
+ queryParams.append('limit', String(context.propsValue.limit));
748
+ const queryString = queryParams.toString();
749
+ const urlWithQuery = queryString ? `${url}?${queryString}` : url;
750
+ const response = await pieces_common_1.httpClient.sendRequest({
751
+ method: pieces_common_1.HttpMethod.GET,
752
+ url: urlWithQuery,
753
+ headers: {
754
+ Authorization: `Bearer ${token}`,
755
+ 'Content-Type': 'application/json',
756
+ 'X-WorkBuddy-Version': '2026-01',
757
+ },
758
+ });
759
+ return response.body;
760
+ },
761
+ });
762
+ exports.PublicApiJobController_getStageItem = (0, pieces_framework_1.createAction)({
763
+ name: 'PublicApiJobController_getStageItem',
764
+ auth: auth_1.workbuddyAuth,
765
+ displayName: 'Get stage item',
766
+ description: 'Get a specific item within a stage.',
767
+ props: {
768
+ id: pieces_framework_1.Property.ShortText({
769
+ displayName: 'Id',
770
+ description: 'Job ID',
771
+ required: true,
772
+ }),
773
+ stageId: pieces_framework_1.Property.ShortText({
774
+ displayName: 'Stage Id',
775
+ description: 'Stage ID',
776
+ required: true,
777
+ }),
778
+ itemId: pieces_framework_1.Property.ShortText({
779
+ displayName: 'Item Id',
780
+ description: 'Item ID',
781
+ required: true,
782
+ }),
783
+ },
784
+ async run(context) {
785
+ const token = await (0, auth_1.getAccessToken)(context.auth);
786
+ const baseUrl = context.auth.props.baseUrl;
787
+ const url = `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}/stages/${context.propsValue.stageId}/items/${context.propsValue.itemId}`;
788
+ const response = await pieces_common_1.httpClient.sendRequest({
789
+ method: pieces_common_1.HttpMethod.GET,
790
+ url: `${baseUrl}/api/v2/public/jobs/${context.propsValue.id}/stages/${context.propsValue.stageId}/items/${context.propsValue.itemId}`,
791
+ headers: {
792
+ Authorization: `Bearer ${token}`,
793
+ 'Content-Type': 'application/json',
794
+ 'X-WorkBuddy-Version': '2026-01',
795
+ },
796
+ });
797
+ return response.body;
798
+ },
799
+ });
800
+ //# sourceMappingURL=jobs.js.map