@activepieces/piece-housecall-pro 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 (45) hide show
  1. package/README.md +7 -0
  2. package/package.json +24 -0
  3. package/src/i18n/translation.json +3 -0
  4. package/src/index.d.ts +1 -0
  5. package/src/index.js +46 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/actions/create-customer-address.d.ts +11 -0
  8. package/src/lib/actions/create-customer-address.js +84 -0
  9. package/src/lib/actions/create-customer-address.js.map +1 -0
  10. package/src/lib/actions/create-customer.d.ts +15 -0
  11. package/src/lib/actions/create-customer.js +122 -0
  12. package/src/lib/actions/create-customer.js.map +1 -0
  13. package/src/lib/actions/create-job.d.ts +15 -0
  14. package/src/lib/actions/create-job.js +126 -0
  15. package/src/lib/actions/create-job.js.map +1 -0
  16. package/src/lib/actions/delete-job-schedule.d.ts +3 -0
  17. package/src/lib/actions/delete-job-schedule.js +28 -0
  18. package/src/lib/actions/delete-job-schedule.js.map +1 -0
  19. package/src/lib/actions/get-customer-address.d.ts +4 -0
  20. package/src/lib/actions/get-customer-address.js +33 -0
  21. package/src/lib/actions/get-customer-address.js.map +1 -0
  22. package/src/lib/actions/get-customer-addresses.d.ts +7 -0
  23. package/src/lib/actions/get-customer-addresses.js +72 -0
  24. package/src/lib/actions/get-customer-addresses.js.map +1 -0
  25. package/src/lib/actions/get-customer.d.ts +4 -0
  26. package/src/lib/actions/get-customer.js +43 -0
  27. package/src/lib/actions/get-customer.js.map +1 -0
  28. package/src/lib/actions/get-customers.d.ts +9 -0
  29. package/src/lib/actions/get-customers.js +97 -0
  30. package/src/lib/actions/get-customers.js.map +1 -0
  31. package/src/lib/actions/get-job.d.ts +4 -0
  32. package/src/lib/actions/get-job.js +43 -0
  33. package/src/lib/actions/get-job.js.map +1 -0
  34. package/src/lib/actions/get-jobs.d.ts +15 -0
  35. package/src/lib/actions/get-jobs.js +161 -0
  36. package/src/lib/actions/get-jobs.js.map +1 -0
  37. package/src/lib/actions/update-customer.d.ts +15 -0
  38. package/src/lib/actions/update-customer.js +94 -0
  39. package/src/lib/actions/update-customer.js.map +1 -0
  40. package/src/lib/actions/update-job-schedule.d.ts +10 -0
  41. package/src/lib/actions/update-job-schedule.js +89 -0
  42. package/src/lib/actions/update-job-schedule.js.map +1 -0
  43. package/src/lib/common/index.d.ts +63 -0
  44. package/src/lib/common/index.js +90 -0
  45. package/src/lib/common/index.js.map +1 -0
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateJobSchedule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
6
+ const common_1 = require("../common");
7
+ const pieces_common_1 = require("@activepieces/pieces-common");
8
+ exports.updateJobSchedule = (0, pieces_framework_1.createAction)({
9
+ auth: common_1.housecallProAuth,
10
+ name: "update_job_schedule",
11
+ displayName: "Update Job Schedule",
12
+ description: "Updates a job's schedule. Jobs with multi days feature containing more than 1 appointment can't be updated through this action.",
13
+ props: {
14
+ job_id: pieces_framework_1.Property.ShortText({
15
+ displayName: "Job ID",
16
+ description: "The ID of the job to update schedule for",
17
+ required: true,
18
+ }),
19
+ start_time: pieces_framework_1.Property.ShortText({
20
+ displayName: "Start Time",
21
+ description: "Start time of job in ISO8601 format (e.g., 2021-01-14T20:14:00)",
22
+ required: true,
23
+ }),
24
+ end_time: pieces_framework_1.Property.ShortText({
25
+ displayName: "End Time",
26
+ description: "End time of job in ISO8601 format (e.g., 2021-01-14T21:14:00)",
27
+ required: true,
28
+ }),
29
+ arrival_window_in_minutes: pieces_framework_1.Property.Number({
30
+ displayName: "Arrival Window (minutes)",
31
+ description: "Integer value in minutes of arrival window",
32
+ required: false,
33
+ }),
34
+ notify: pieces_framework_1.Property.Checkbox({
35
+ displayName: "Notify",
36
+ description: "Notify the customer of the update schedule",
37
+ required: false,
38
+ defaultValue: true,
39
+ }),
40
+ notify_pro: pieces_framework_1.Property.Checkbox({
41
+ displayName: "Notify Pro",
42
+ description: "Notify the pros of the update schedule",
43
+ required: false,
44
+ defaultValue: true,
45
+ }),
46
+ expand: pieces_framework_1.Property.StaticMultiSelectDropdown({
47
+ displayName: "Expand",
48
+ description: "Expand related entities",
49
+ required: false,
50
+ options: {
51
+ options: [
52
+ { label: "Assigned Employees", value: "assigned_employees" },
53
+ ],
54
+ },
55
+ }),
56
+ dispatched_employees: pieces_framework_1.Property.Array({
57
+ displayName: "Dispatched Employees",
58
+ description: "Array of employee objects with employee_id",
59
+ required: false,
60
+ }),
61
+ },
62
+ run(context) {
63
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
64
+ const { auth, propsValue } = context;
65
+ const scheduleData = {
66
+ start_time: propsValue['start_time'],
67
+ end_time: propsValue['end_time'],
68
+ };
69
+ if (propsValue['arrival_window_in_minutes'] !== undefined) {
70
+ scheduleData['arrival_window_in_minutes'] = propsValue['arrival_window_in_minutes'];
71
+ }
72
+ if (propsValue['notify'] !== undefined) {
73
+ scheduleData['notify'] = propsValue['notify'];
74
+ }
75
+ if (propsValue['notify_pro'] !== undefined) {
76
+ scheduleData['notify_pro'] = propsValue['notify_pro'];
77
+ }
78
+ if (propsValue['expand'] && propsValue['expand'].length > 0) {
79
+ scheduleData['expand'] = propsValue['expand'].join(',');
80
+ }
81
+ if (propsValue['dispatched_employees'] && propsValue['dispatched_employees'].length > 0) {
82
+ scheduleData['dispatched_employees'] = propsValue['dispatched_employees'];
83
+ }
84
+ const response = yield (0, common_1.makeHousecallProRequest)(auth, `/jobs/${propsValue['job_id']}/schedule`, pieces_common_1.HttpMethod.PUT, scheduleData);
85
+ return response.body;
86
+ });
87
+ },
88
+ });
89
+ //# sourceMappingURL=update-job-schedule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-job-schedule.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/housecall-pro/src/lib/actions/update-job-schedule.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { HttpMethod } from "@activepieces/pieces-common";
2
+ export { createCustomer } from "../actions/create-customer";
3
+ export { getCustomers } from "../actions/get-customers";
4
+ export { getCustomer } from "../actions/get-customer";
5
+ export { updateCustomer } from "../actions/update-customer";
6
+ export { getCustomerAddresses } from "../actions/get-customer-addresses";
7
+ export { createCustomerAddress } from "../actions/create-customer-address";
8
+ export { getCustomerAddress } from "../actions/get-customer-address";
9
+ export { createJob } from "../actions/create-job";
10
+ export { getJobs } from "../actions/get-jobs";
11
+ export { getJob } from "../actions/get-job";
12
+ export { updateJobSchedule } from "../actions/update-job-schedule";
13
+ export { deleteJobSchedule } from "../actions/delete-job-schedule";
14
+ export declare const baseUrl = "https://api.housecallpro.com";
15
+ export declare const housecallProAuth: import("@activepieces/pieces-framework").SecretTextProperty<true>;
16
+ export declare function makeHousecallProRequest(auth: string, endpoint: string, method?: HttpMethod, body?: any, queryParams?: Record<string, string>): Promise<import("@activepieces/pieces-common").HttpResponse<any>>;
17
+ export interface HousecallProCustomer {
18
+ id?: number;
19
+ first_name: string;
20
+ last_name: string;
21
+ email?: string;
22
+ phone?: string;
23
+ mobile?: string;
24
+ company?: string;
25
+ address?: string;
26
+ city?: string;
27
+ state?: string;
28
+ zip?: string;
29
+ notes?: string;
30
+ tags?: string[];
31
+ created_at?: string;
32
+ updated_at?: string;
33
+ }
34
+ export interface HousecallProJob {
35
+ id?: number;
36
+ customer_id: number;
37
+ title: string;
38
+ description?: string;
39
+ work_status?: string;
40
+ scheduled_date?: string;
41
+ scheduled_time?: string;
42
+ duration?: number;
43
+ address?: string;
44
+ city?: string;
45
+ state?: string;
46
+ zip?: string;
47
+ notes?: string;
48
+ created_at?: string;
49
+ updated_at?: string;
50
+ }
51
+ export interface HousecallProEstimate {
52
+ id?: number;
53
+ customer_id: number;
54
+ job_id?: number;
55
+ title: string;
56
+ description?: string;
57
+ status?: string;
58
+ total_amount?: number;
59
+ valid_until?: string;
60
+ notes?: string;
61
+ created_at?: string;
62
+ updated_at?: string;
63
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.housecallProAuth = exports.baseUrl = exports.deleteJobSchedule = exports.updateJobSchedule = exports.getJob = exports.getJobs = exports.createJob = exports.getCustomerAddress = exports.createCustomerAddress = exports.getCustomerAddresses = exports.updateCustomer = exports.getCustomer = exports.getCustomers = exports.createCustomer = void 0;
4
+ exports.makeHousecallProRequest = makeHousecallProRequest;
5
+ const tslib_1 = require("tslib");
6
+ const pieces_framework_1 = require("@activepieces/pieces-framework");
7
+ const pieces_common_1 = require("@activepieces/pieces-common");
8
+ // Action imports
9
+ // Customer actions
10
+ var create_customer_1 = require("../actions/create-customer");
11
+ Object.defineProperty(exports, "createCustomer", { enumerable: true, get: function () { return create_customer_1.createCustomer; } });
12
+ var get_customers_1 = require("../actions/get-customers");
13
+ Object.defineProperty(exports, "getCustomers", { enumerable: true, get: function () { return get_customers_1.getCustomers; } });
14
+ var get_customer_1 = require("../actions/get-customer");
15
+ Object.defineProperty(exports, "getCustomer", { enumerable: true, get: function () { return get_customer_1.getCustomer; } });
16
+ var update_customer_1 = require("../actions/update-customer");
17
+ Object.defineProperty(exports, "updateCustomer", { enumerable: true, get: function () { return update_customer_1.updateCustomer; } });
18
+ var get_customer_addresses_1 = require("../actions/get-customer-addresses");
19
+ Object.defineProperty(exports, "getCustomerAddresses", { enumerable: true, get: function () { return get_customer_addresses_1.getCustomerAddresses; } });
20
+ var create_customer_address_1 = require("../actions/create-customer-address");
21
+ Object.defineProperty(exports, "createCustomerAddress", { enumerable: true, get: function () { return create_customer_address_1.createCustomerAddress; } });
22
+ var get_customer_address_1 = require("../actions/get-customer-address");
23
+ Object.defineProperty(exports, "getCustomerAddress", { enumerable: true, get: function () { return get_customer_address_1.getCustomerAddress; } });
24
+ // Job actions
25
+ var create_job_1 = require("../actions/create-job");
26
+ Object.defineProperty(exports, "createJob", { enumerable: true, get: function () { return create_job_1.createJob; } });
27
+ var get_jobs_1 = require("../actions/get-jobs");
28
+ Object.defineProperty(exports, "getJobs", { enumerable: true, get: function () { return get_jobs_1.getJobs; } });
29
+ var get_job_1 = require("../actions/get-job");
30
+ Object.defineProperty(exports, "getJob", { enumerable: true, get: function () { return get_job_1.getJob; } });
31
+ var update_job_schedule_1 = require("../actions/update-job-schedule");
32
+ Object.defineProperty(exports, "updateJobSchedule", { enumerable: true, get: function () { return update_job_schedule_1.updateJobSchedule; } });
33
+ var delete_job_schedule_1 = require("../actions/delete-job-schedule");
34
+ Object.defineProperty(exports, "deleteJobSchedule", { enumerable: true, get: function () { return delete_job_schedule_1.deleteJobSchedule; } });
35
+ exports.baseUrl = "https://api.housecallpro.com";
36
+ exports.housecallProAuth = pieces_framework_1.PieceAuth.SecretText({
37
+ displayName: "API Key",
38
+ description: "Your Housecall Pro API Key. You can find it in your Housecall Pro account settings under API.",
39
+ required: true,
40
+ validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
41
+ try {
42
+ // Validate the API key by making a simple request to get customers
43
+ const response = yield pieces_common_1.httpClient.sendRequest({
44
+ url: `${exports.baseUrl}/customers`,
45
+ method: pieces_common_1.HttpMethod.GET,
46
+ headers: {
47
+ "Authorization": `Token ${auth}`,
48
+ "Content-Type": "application/json",
49
+ },
50
+ queryParams: {
51
+ page_size: "1", // Just get one to validate
52
+ },
53
+ });
54
+ if (response.status === 200) {
55
+ return {
56
+ valid: true,
57
+ };
58
+ }
59
+ else {
60
+ return {
61
+ valid: false,
62
+ error: "Invalid API key or insufficient permissions",
63
+ };
64
+ }
65
+ }
66
+ catch (error) {
67
+ return {
68
+ valid: false,
69
+ error: "Unable to validate API key. Please check your API credentials.",
70
+ };
71
+ }
72
+ }),
73
+ });
74
+ // Common API functions
75
+ function makeHousecallProRequest(auth_1, endpoint_1) {
76
+ return tslib_1.__awaiter(this, arguments, void 0, function* (auth, endpoint, method = pieces_common_1.HttpMethod.GET, body, queryParams) {
77
+ const fullUrl = `${exports.baseUrl}${endpoint}`;
78
+ return yield pieces_common_1.httpClient.sendRequest({
79
+ url: fullUrl,
80
+ method,
81
+ headers: {
82
+ "Authorization": `Token ${auth}`,
83
+ "Content-Type": "application/json",
84
+ },
85
+ body,
86
+ queryParams,
87
+ });
88
+ });
89
+ }
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/pieces/community/housecall-pro/src/lib/common/index.ts"],"names":[],"mappings":";;;AA8DA,0DAmBC;;AAjFD,qEAA2D;AAC3D,+DAAqE;AAErE,iBAAiB;AACjB,mBAAmB;AACnB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,0DAAwD;AAA/C,6GAAA,YAAY,OAAA;AACrB,wDAAsD;AAA7C,2GAAA,WAAW,OAAA;AACpB,8DAA4D;AAAnD,iHAAA,cAAc,OAAA;AACvB,4EAAyE;AAAhE,8HAAA,oBAAoB,OAAA;AAC7B,8EAA2E;AAAlE,gIAAA,qBAAqB,OAAA;AAC9B,wEAAqE;AAA5D,0HAAA,kBAAkB,OAAA;AAE3B,cAAc;AACd,oDAAkD;AAAzC,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,8CAA4C;AAAnC,iGAAA,MAAM,OAAA;AACf,sEAAmE;AAA1D,wHAAA,iBAAiB,OAAA;AAC1B,sEAAmE;AAA1D,wHAAA,iBAAiB,OAAA;AAGb,QAAA,OAAO,GAAG,8BAA8B,CAAC;AAEzC,QAAA,gBAAgB,GAAG,4BAAS,CAAC,UAAU,CAAC;IACnD,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,+FAA+F;IAC5G,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;QACvB,IAAI,CAAC;YACH,mEAAmE;YACnE,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC5C,GAAG,EAAE,GAAG,eAAO,YAAY;gBAC3B,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,OAAO,EAAE;oBACP,eAAe,EAAE,SAAS,IAAI,EAAE;oBAChC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,WAAW,EAAE;oBACX,SAAS,EAAE,GAAG,EAAE,2BAA2B;iBAC5C;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO;oBACL,KAAK,EAAE,IAAI;iBACZ,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,6CAA6C;iBACrD,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,gEAAgE;aACxE,CAAC;QACJ,CAAC;IACH,CAAC,CAAA;CACF,CAAC,CAAC;AAEH,uBAAuB;AACvB,SAAsB,uBAAuB;iEAC3C,IAAY,EACZ,QAAgB,EAChB,SAAqB,0BAAU,CAAC,GAAG,EACnC,IAAU,EACV,WAAoC;QAEpC,MAAM,OAAO,GAAG,GAAG,eAAO,GAAG,QAAQ,EAAE,CAAC;QAExC,OAAO,MAAM,0BAAU,CAAC,WAAW,CAAC;YAClC,GAAG,EAAE,OAAO;YACZ,MAAM;YACN,OAAO,EAAE;gBACP,eAAe,EAAE,SAAS,IAAI,EAAE;gBAChC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI;YACJ,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;CAAA"}