2021-02-04 00:37:03 -08:00
import {
INodeProperties ,
} from 'n8n-workflow' ;
2021-12-03 00:44:16 -08:00
export const postOperations : INodeProperties [ ] = [
2021-02-04 00:37:03 -08:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
default : 'create' ,
description : 'Operation to perform' ,
options : [
{
name : 'Create' ,
value : 'create' ,
description : 'Submit a post to a subreddit' ,
} ,
{
name : 'Delete' ,
value : 'delete' ,
description : 'Delete a post from a subreddit' ,
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Get a post from a subreddit' ,
} ,
{
name : 'Get All' ,
value : 'getAll' ,
description : 'Get all posts from a subreddit' ,
} ,
2021-02-18 03:46:22 -08:00
{
name : 'Search' ,
value : 'search' ,
2022-05-06 14:01:25 -07:00
description : 'Search posts in a subreddit or in all of Reddit' ,
2021-02-18 03:46:22 -08:00
} ,
2021-02-04 00:37:03 -08:00
] ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
} ,
} ,
} ,
2021-12-03 00:44:16 -08:00
] ;
2021-02-04 00:37:03 -08:00
2021-12-03 00:44:16 -08:00
export const postFields : INodeProperties [ ] = [
2021-02-04 00:37:03 -08:00
// ----------------------------------
// post: create
// ----------------------------------
{
displayName : 'Subreddit' ,
name : 'subreddit' ,
type : 'string' ,
required : true ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Subreddit to create the post in' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
} ,
{
displayName : 'Kind' ,
name : 'kind' ,
type : 'options' ,
options : [
{
name : 'Text Post' ,
value : 'self' ,
} ,
{
name : 'Link Post' ,
value : 'link' ,
} ,
{
name : 'Image Post' ,
value : 'image' ,
} ,
] ,
default : 'self' ,
2022-05-06 14:01:25 -07:00
description : 'The kind of the post to create' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
} ,
{
displayName : 'Title' ,
name : 'title' ,
type : 'string' ,
required : true ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Title of the post, up to 300 characters long' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
} ,
{
displayName : 'URL' ,
name : 'url' ,
type : 'string' ,
required : true ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'URL of the post' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
kind : [
'link' ,
'image' ,
] ,
} ,
} ,
} ,
{
displayName : 'Text' ,
name : 'text' ,
type : 'string' ,
required : true ,
default : '' ,
description : 'Text of the post. Markdown supported.' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
kind : [
'self' ,
] ,
} ,
} ,
} ,
{
displayName : 'Resubmit' ,
name : 'resubmit' ,
type : 'boolean' ,
default : false ,
2021-11-25 09:10:06 -08:00
description : 'If toggled on, the URL will be posted even if it was already posted to the subreddit before. Otherwise, the re-posting will trigger an error.' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
kind : [
'link' ,
'image' ,
] ,
} ,
} ,
} ,
// ----------------------------------
// post: delete
// ----------------------------------
{
displayName : 'Post ID' ,
name : 'postId' ,
type : 'string' ,
required : true ,
default : '' ,
2021-11-25 09:10:06 -08:00
description : 'ID of the post to delete. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>' ,
2021-02-04 00:37:03 -08:00
placeholder : 'gla7fmt' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'delete' ,
] ,
} ,
} ,
} ,
// ----------------------------------
// post: get
// ----------------------------------
{
displayName : 'Subreddit' ,
name : 'subreddit' ,
type : 'string' ,
required : true ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The name of subreddit to retrieve the post from' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'get' ,
] ,
} ,
} ,
} ,
{
displayName : 'Post ID' ,
name : 'postId' ,
type : 'string' ,
required : true ,
default : '' ,
2021-11-25 09:10:06 -08:00
description : 'ID of the post to retrieve. Found in the post URL: <code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>' ,
2021-02-04 00:37:03 -08:00
placeholder : 'l0me7x' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'get' ,
] ,
} ,
} ,
} ,
// ----------------------------------
// post: getAll
// ----------------------------------
{
displayName : 'Subreddit' ,
name : 'subreddit' ,
type : 'string' ,
required : true ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The name of subreddit to retrieve the posts from' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
} ,
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether to return all results or only up to a given limit' ,
2021-02-04 00:37:03 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
default : 100 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
2021-02-04 00:37:03 -08:00
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
} ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
returnAll : [
false ,
] ,
} ,
} ,
} ,
{
displayName : 'Filters' ,
name : 'filters' ,
type : 'collection' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
default : { } ,
placeholder : 'Add Field' ,
options : [
{
displayName : 'Category' ,
name : 'category' ,
type : 'options' ,
required : true ,
default : 'top' ,
2022-05-06 14:01:25 -07:00
description : 'Category of the posts to retrieve' ,
2021-02-04 00:37:03 -08:00
options : [
{
name : 'Top Posts' ,
value : 'top' ,
} ,
{
name : 'Hot Posts' ,
value : 'hot' ,
} ,
{
name : 'New Posts' ,
value : 'new' ,
} ,
{
name : 'Rising Posts' ,
value : 'rising' ,
} ,
] ,
} ,
] ,
} ,
2021-02-18 03:46:22 -08:00
// ----------------------------------
// post: search
// ----------------------------------
{
displayName : 'Location' ,
name : 'location' ,
type : 'options' ,
default : 'subreddit' ,
2022-05-06 14:01:25 -07:00
description : 'Location where to search for posts' ,
2021-02-18 03:46:22 -08:00
options : [
{
name : 'All Reddit' ,
value : 'allReddit' ,
2022-05-06 14:01:25 -07:00
description : 'Search for posts in all of Reddit' ,
2021-02-18 03:46:22 -08:00
} ,
{
name : 'Subreddit' ,
value : 'subreddit' ,
2022-05-06 14:01:25 -07:00
description : 'Search for posts in a specific subreddit' ,
2021-02-18 03:46:22 -08:00
} ,
] ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'search' ,
] ,
} ,
} ,
} ,
{
displayName : 'Subreddit' ,
name : 'subreddit' ,
type : 'string' ,
required : true ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'The name of subreddit to search in' ,
2021-02-18 03:46:22 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'search' ,
] ,
location : [
'subreddit' ,
] ,
} ,
} ,
} ,
{
displayName : 'Keyword' ,
name : 'keyword' ,
type : 'string' ,
default : '' ,
required : true ,
2022-05-06 14:01:25 -07:00
description : 'The keyword for the search' ,
2021-02-18 03:46:22 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'search' ,
] ,
} ,
} ,
} ,
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
default : false ,
2022-05-06 14:01:25 -07:00
description : 'Whether to return all results or only up to a given limit' ,
2021-02-18 03:46:22 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'search' ,
] ,
} ,
} ,
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
default : 100 ,
2022-05-06 14:01:25 -07:00
description : 'Max number of results to return' ,
2021-02-18 03:46:22 -08:00
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
} ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'search' ,
] ,
returnAll : [
false ,
] ,
} ,
} ,
} ,
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
placeholder : 'Add Field' ,
default : { } ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'search' ,
] ,
} ,
} ,
options : [
{
displayName : 'Sort' ,
name : 'sort' ,
placeholder : '' ,
type : 'options' ,
default : 'relevance' ,
2022-05-06 14:01:25 -07:00
description : 'The category to sort results by' ,
2021-02-18 03:46:22 -08:00
options : [
{
name : 'Comments' ,
value : 'comments' ,
} ,
{
name : 'Hot' ,
value : 'hot' ,
} ,
{
name : 'New' ,
value : 'new' ,
} ,
{
name : 'Top' ,
value : 'top' ,
} ,
{
name : 'Relevance' ,
value : 'relevance' ,
} ,
] ,
} ,
] ,
} ,
2021-12-03 00:44:16 -08:00
] ;