From 49001ce789dbecb0fbeb4ac158e629938b64b854 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Sun, 17 Jan 2021 20:26:04 -0300 Subject: [PATCH] Add subreddit search functionality --- .../nodes/Reddit/GenericFunctions.ts | 5 +- .../nodes-base/nodes/Reddit/Reddit.node.ts | 9 +++ .../nodes/Reddit/SubredditDescription.ts | 65 +++++++++++++++++++ 3 files changed, 78 insertions(+), 1 deletion(-) diff --git a/packages/nodes-base/nodes/Reddit/GenericFunctions.ts b/packages/nodes-base/nodes/Reddit/GenericFunctions.ts index 876b4cb6a8..820235e726 100644 --- a/packages/nodes-base/nodes/Reddit/GenericFunctions.ts +++ b/packages/nodes-base/nodes/Reddit/GenericFunctions.ts @@ -10,6 +10,7 @@ import { import { OptionsWithUri, } from 'request'; +import { queryString } from '../TheHive/QueryFunctions'; /** @@ -101,7 +102,9 @@ export async function handleListing( return await redditApiRequestAllItems.call(this, 'GET', endpoint, {}, {}, true); } - const qs: IDataObject = { limit: this.getNodeParameter('limit', i) }; + const qs: IDataObject = { + limit: this.getNodeParameter('limit', i), + }; responseData = await redditApiRequestAllItems.call(this, 'GET', endpoint, qs, {}, true); responseData = responseData.splice(0, qs.limit); diff --git a/packages/nodes-base/nodes/Reddit/Reddit.node.ts b/packages/nodes-base/nodes/Reddit/Reddit.node.ts index a2211d2758..623c646594 100644 --- a/packages/nodes-base/nodes/Reddit/Reddit.node.ts +++ b/packages/nodes-base/nodes/Reddit/Reddit.node.ts @@ -210,6 +210,15 @@ export class Reddit implements INodeType { } + } else if (operation === 'search') { + + const endpoint = `api/search_reddit_names.json`; + const qs: IDataObject = { + query: this.getNodeParameter('keyword', i), + }; + + responseData = await redditApiRequest.call(this, 'GET', endpoint, qs, {}, true); + } } diff --git a/packages/nodes-base/nodes/Reddit/SubredditDescription.ts b/packages/nodes-base/nodes/Reddit/SubredditDescription.ts index b34c6c350d..cfcce8b0bb 100644 --- a/packages/nodes-base/nodes/Reddit/SubredditDescription.ts +++ b/packages/nodes-base/nodes/Reddit/SubredditDescription.ts @@ -30,6 +30,9 @@ export const subredditOperations = [ ] as INodeProperties[]; export const subredditFields = [ + // ---------------------------------- + // get: subreddit + // ---------------------------------- { displayName: 'Content', name: 'content', @@ -153,4 +156,66 @@ export const subredditFields = [ }, }, }, + // ---------------------------------- + // search: subreddit + // ---------------------------------- + { + displayName: 'Keyword', + name: 'keyword', + type: 'string', + required: true, + default: '', + description: 'The keyword for the subreddit name search', + displayOptions: { + show: { + resource: [ + 'subreddit', + ], + operation: [ + 'search', + ], + }, + }, + }, + { + displayName: 'Return All', + name: 'returnAll', + type: 'boolean', + default: false, + description: 'Return all results', + displayOptions: { + show: { + resource: [ + 'subreddit', + ], + operation: [ + 'search', + ], + }, + }, + }, + { + displayName: 'Limit', + name: 'limit', + type: 'number', + default: 5, + description: 'The number of results to return', + typeOptions: { + minValue: 1, + maxValue: 100, + }, + displayOptions: { + show: { + resource: [ + 'subreddit', + ], + operation: [ + 'search', + ], + returnAll: [ + false, + ], + }, + }, + }, ] as INodeProperties[];