2021-01-29 06:44:02 -08:00
import {
INodeProperties ,
} from 'n8n-workflow' ;
export const postOperations = [
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
default : 'create' ,
description : 'Operation to perform' ,
options : [
{
name : 'Create' ,
value : 'create' ,
2021-01-29 13:01:17 -08:00
description : 'Submit a post to a subreddit.' ,
} ,
{
name : 'Delete' ,
value : 'delete' ,
2021-01-29 13:47:43 -08:00
description : 'Delete a post from a subreddit.' ,
2021-01-29 13:01:17 -08:00
} ,
{
name : 'Get' ,
value : 'get' ,
description : 'Get a post from a subreddit.' ,
2021-01-29 06:44:02 -08:00
} ,
{
name : 'Get All' ,
value : 'getAll' ,
2021-01-29 13:01:17 -08:00
description : 'Get all posts from a subreddit.' ,
2021-01-29 06:44:02 -08:00
} ,
] ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
} ,
} ,
} ,
] as INodeProperties [ ] ;
export const postFields = [
// ----------------------------------
// post: create
// ----------------------------------
{
displayName : 'Subreddit' ,
name : 'subreddit' ,
type : 'string' ,
required : true ,
default : '' ,
description : 'Subreddit to create the post in.' ,
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' ,
} ,
{
name : 'Video Post' ,
value : 'video' ,
} ,
{
name : 'Video GIF Post' ,
value : 'videogif' ,
} ,
] ,
default : 'self' ,
description : 'The kind of the post to create' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
} ,
{
displayName : 'Title' ,
name : 'title' ,
type : 'string' ,
required : true ,
default : '' ,
description : 'Title of the post, up to 300 characters long.' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
} ,
} ,
} ,
{
displayName : 'URL' ,
name : 'url' ,
type : 'string' ,
required : true ,
default : '' ,
description : 'URL of the post.' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
kind : [
'link' ,
'image' ,
'video' ,
'videogif' ,
] ,
} ,
} ,
} ,
{
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 ,
description : 'If toggled on, the URL will be posted even if<br>it was already posted to the subreddit before.<br>Otherwise, the re-posting will trigger an error.' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'create' ,
] ,
kind : [
'link' ,
'image' ,
'video' ,
'videogif' ,
] ,
} ,
} ,
} ,
// ----------------------------------
2021-01-29 13:01:17 -08:00
// post: delete
// ----------------------------------
{
displayName : 'Post ID' ,
name : 'postId' ,
type : 'string' ,
required : true ,
default : '' ,
description : 'ID of the post to delete. Found in the post URL:<br><code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>' ,
placeholder : 'gla7fmt' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'delete' ,
] ,
} ,
} ,
} ,
// ----------------------------------
// post: get
2021-01-29 06:44:02 -08:00
// ----------------------------------
{
displayName : 'Subreddit' ,
name : 'subreddit' ,
type : 'string' ,
required : true ,
default : '' ,
2021-01-29 13:01:17 -08:00
description : 'The name of subreddit to retrieve the post from.' ,
2021-01-29 06:44:02 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
2021-01-29 13:01:17 -08:00
'get' ,
2021-01-29 06:44:02 -08:00
] ,
} ,
} ,
} ,
{
2021-01-29 13:01:17 -08:00
displayName : 'Post ID' ,
name : 'postId' ,
type : 'string' ,
2021-01-29 06:44:02 -08:00
required : true ,
2021-01-29 13:01:17 -08:00
default : '' ,
description : 'ID of the post to retrieve. Found in the post URL:<br><code>/r/[subreddit_name]/comments/[post_id]/[post_title]</code>' ,
placeholder : 'l0me7x' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'get' ,
] ,
2021-01-29 06:44:02 -08:00
} ,
2021-01-29 13:01:17 -08:00
} ,
} ,
// ----------------------------------
// post: getAll
// ----------------------------------
{
displayName : 'Subreddit' ,
name : 'subreddit' ,
type : 'string' ,
required : true ,
default : '' ,
description : 'The name of subreddit to retrieve the posts from.' ,
2021-01-29 06:44:02 -08:00
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
} ,
{
displayName : 'Return All' ,
name : 'returnAll' ,
type : 'boolean' ,
default : false ,
description : 'Return all results.' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
} ,
{
displayName : 'Limit' ,
name : 'limit' ,
type : 'number' ,
default : 5 ,
description : 'The number of results to return.' ,
typeOptions : {
minValue : 1 ,
maxValue : 100 ,
} ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
returnAll : [
false ,
] ,
} ,
} ,
} ,
2021-01-29 13:01:17 -08:00
{
displayName : 'Additional Fields' ,
name : 'additionalFields' ,
type : 'collection' ,
displayOptions : {
show : {
resource : [
'post' ,
] ,
operation : [
'getAll' ,
] ,
} ,
} ,
default : { } ,
placeholder : 'Add Field' ,
options : [
{
displayName : 'Category' ,
name : 'category' ,
type : 'options' ,
required : true ,
default : 'top' ,
description : 'Category of the posts to retrieve.' ,
options : [
{
name : 'Top Posts' ,
value : 'top' ,
} ,
{
name : 'Hot Posts' ,
value : 'hot' ,
} ,
{
name : 'New Posts' ,
value : 'new' ,
} ,
{
name : 'Rising Posts' ,
value : 'rising' ,
} ,
] ,
} ,
] ,
} ,
2021-01-29 06:44:02 -08:00
] as INodeProperties [ ] ;