Skip to content

Commit 8268c0e

Browse files
Hubspot - update search-crm (PipedreamHQ#18360)
* update search-crm * limit results to one page * update version * package.json version
1 parent 0c0e183 commit 8268c0e

File tree

2 files changed

+29
-25
lines changed

2 files changed

+29
-25
lines changed

components/hubspot/actions/search-crm/search-crm.mjs

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@ import {
44
DEFAULT_CONTACT_PROPERTIES,
55
DEFAULT_DEAL_PROPERTIES,
66
DEFAULT_LEAD_PROPERTIES,
7-
DEFAULT_LIMIT,
87
DEFAULT_LINE_ITEM_PROPERTIES,
98
DEFAULT_PRODUCT_PROPERTIES,
109
DEFAULT_TICKET_PROPERTIES,
1110
SEARCHABLE_OBJECT_TYPES,
1211
} from "../../common/constants.mjs";
1312
import hubspot from "../../hubspot.app.mjs";
1413
import common from "../common/common-create.mjs";
14+
const DEFAULT_LIMIT = 200;
1515

1616
export default {
1717
key: "hubspot-search-crm",
1818
name: "Search CRM",
1919
description:
2020
"Search companies, contacts, deals, feedback submissions, products, tickets, line-items, quotes, leads, or custom objects. [See the documentation](https://developers.hubspot.com/docs/api/crm/search)",
21-
version: "1.0.12",
21+
version: "1.1.0",
2222
type: "action",
2323
props: {
2424
hubspot,
@@ -52,6 +52,13 @@ export default {
5252
optional: true,
5353
reloadProps: true,
5454
},
55+
offset: {
56+
type: "integer",
57+
label: "Offset",
58+
description: "The offset to start from. Used for pagination.",
59+
default: 0,
60+
optional: true,
61+
},
5562
},
5663
async additionalProps() {
5764
const props = {};
@@ -224,23 +231,6 @@ export default {
224231
})) || []
225232
);
226233
},
227-
async paginate(params) {
228-
let results;
229-
const items = [];
230-
while (!results || params.after) {
231-
results = await this.hubspot.searchCRM(params);
232-
if (results.paging) {
233-
params.after = results.paging.next.after;
234-
} else {
235-
delete params.after;
236-
}
237-
results = results.results;
238-
for (const result of results) {
239-
items.push(result);
240-
}
241-
}
242-
return items;
243-
},
244234
},
245235
async run({ $ }) {
246236
const {
@@ -251,6 +241,7 @@ export default {
251241
searchProperty,
252242
searchValue,
253243
exactMatch,
244+
offset,
254245
/* eslint-disable no-unused-vars */
255246
info,
256247
createIfNotFound,
@@ -282,8 +273,18 @@ export default {
282273
properties: [
283274
...defaultProperties,
284275
...additionalProperties,
276+
searchProperty,
285277
],
278+
sorts: [
279+
{
280+
propertyName: "createdate",
281+
direction: "DESCENDING",
282+
},
283+
],
284+
limit: DEFAULT_LIMIT,
285+
after: offset,
286286
};
287+
287288
if (exactMatch) {
288289
data.filters = [
289290
{
@@ -292,17 +293,17 @@ export default {
292293
value: searchValue,
293294
},
294295
];
295-
} else {
296-
data.limit = DEFAULT_LIMIT;
297296
}
298297

299-
let results = await this.paginate({
298+
let {
299+
results, paging,
300+
} = await this.hubspot.searchCRM({
300301
object: actualObjectType,
301302
data,
302303
});
303304

304305
if (!exactMatch) {
305-
results = results.filter(
306+
results = results?.filter(
306307
(result) =>
307308
result.properties[searchProperty] &&
308309
result.properties[searchProperty]
@@ -328,6 +329,9 @@ export default {
328329
"$summary",
329330
`Successfully retrieved ${results?.length} object(s).`,
330331
);
331-
return results;
332+
return {
333+
results,
334+
paging,
335+
};
332336
},
333337
};

components/hubspot/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@pipedream/hubspot",
3-
"version": "1.7.4",
3+
"version": "1.7.5",
44
"description": "Pipedream Hubspot Components",
55
"main": "hubspot.app.mjs",
66
"keywords": [

0 commit comments

Comments
 (0)