| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | import { INodeProperties } from "n8n-workflow"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							| 
									
										
										
										
											2022-06-16 15:03:56 +02:00
										 |  |  |  *	This maps the operations to when the Resource option HTTP Verbs is selected | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  |  */ | 
					
						
							|  |  |  | export const httpVerbOperations: Array<INodeProperties> = [ | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		displayName: "Operation", | 
					
						
							|  |  |  | 		name: "operation", | 
					
						
							|  |  |  | 		type: "options", | 
					
						
							|  |  |  | 		noDataExpression: true, | 
					
						
							|  |  |  | 		displayOptions: { | 
					
						
							|  |  |  | 			show: { | 
					
						
							|  |  |  | 				resource: ["httpverbs"], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		options: [ | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "GET", | 
					
						
							|  |  |  | 				value: "get", | 
					
						
							|  |  |  | 				routing: { | 
					
						
							|  |  |  | 					request: { | 
					
						
							|  |  |  | 						method: "GET", | 
					
						
							|  |  |  | 						url: "/get", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "DELETE", | 
					
						
							|  |  |  | 				value: "delete", | 
					
						
							|  |  |  | 				routing: { | 
					
						
							|  |  |  | 					request: { | 
					
						
							|  |  |  | 						method: "DELETE", | 
					
						
							|  |  |  | 						url: "/delete", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		], | 
					
						
							|  |  |  | 		default: "get", | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-16 15:03:56 +02:00
										 |  |  | /** | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Here we define what to show when the GET Operation is selected | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * We do that by adding operation: ["get"], to "displayOptions.show" | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | const getOperation: Array<INodeProperties> = [ | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		name: "typeofData", | 
					
						
							|  |  |  | 		default: "queryParameterOption", | 
					
						
							| 
									
										
										
										
											2022-06-16 15:03:56 +02:00
										 |  |  | 		description: "Select type of data to send [Query Parameters]", | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | 		displayName: "Type of Data", | 
					
						
							|  |  |  | 		displayOptions: { | 
					
						
							|  |  |  | 			show: { | 
					
						
							|  |  |  | 				resource: ["httpverbs"], | 
					
						
							|  |  |  | 				operation: ["get"], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		type: "options", | 
					
						
							|  |  |  | 		options: [ | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "Query", | 
					
						
							|  |  |  | 				value: "queryParameter", | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		], | 
					
						
							|  |  |  | 		required: true, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		name: "arguments", | 
					
						
							|  |  |  | 		default: {}, | 
					
						
							|  |  |  | 		description: "The request's query parameters", | 
					
						
							| 
									
										
										
										
											2022-06-16 12:18:05 +02:00
										 |  |  | 		displayName: "Query Parameters", | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | 		displayOptions: { | 
					
						
							|  |  |  | 			show: { | 
					
						
							|  |  |  | 				resource: ["httpverbs"], | 
					
						
							|  |  |  | 				operation: ["get"], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		options: [ | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "keyvalue", | 
					
						
							|  |  |  | 				displayName: "Key:Value", | 
					
						
							|  |  |  | 				values: [ | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						displayName: "Key", | 
					
						
							|  |  |  | 						name: "key", | 
					
						
							|  |  |  | 						type: "string", | 
					
						
							|  |  |  | 						default: "", | 
					
						
							|  |  |  | 						required: true, | 
					
						
							|  |  |  | 						description: "Key of query parameter", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						displayName: "Value", | 
					
						
							|  |  |  | 						name: "value", | 
					
						
							|  |  |  | 						type: "string", | 
					
						
							|  |  |  | 						default: "", | 
					
						
							|  |  |  | 						routing: { | 
					
						
							|  |  |  | 							send: { | 
					
						
							|  |  |  | 								property: "={{$parent.key}}", | 
					
						
							|  |  |  | 								type: "query", | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						required: true, | 
					
						
							|  |  |  | 						description: "Value of query parameter", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		], | 
					
						
							|  |  |  | 		type: "fixedCollection", | 
					
						
							|  |  |  | 		typeOptions: { | 
					
						
							|  |  |  | 			multipleValues: true, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-06-16 15:03:56 +02:00
										 |  |  | /** | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Here we define what to show when the DELETE Operation is selected | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * We do that by adding operation: ["delete"], to "displayOptions.show" | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | const deleteOperation: Array<INodeProperties> = [ | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		name: "typeofData", | 
					
						
							|  |  |  | 		default: "queryParameterOption", | 
					
						
							|  |  |  | 		description: | 
					
						
							| 
									
										
										
										
											2022-06-16 15:03:56 +02:00
										 |  |  | 			"Select type of data to send [Query Parameter Arguments, JSON-Body]", | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | 		displayName: "Type of Data", | 
					
						
							|  |  |  | 		displayOptions: { | 
					
						
							|  |  |  | 			show: { | 
					
						
							|  |  |  | 				resource: ["httpverbs"], | 
					
						
							|  |  |  | 				operation: ["delete"], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		options: [ | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "Query", | 
					
						
							|  |  |  | 				value: "queryParameter", | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "JSON", | 
					
						
							|  |  |  | 				value: "jsonData", | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		], | 
					
						
							|  |  |  | 		required: true, | 
					
						
							|  |  |  | 		type: "options", | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		name: "arguments", | 
					
						
							|  |  |  | 		default: {}, | 
					
						
							|  |  |  | 		description: "The request's query parameters", | 
					
						
							| 
									
										
										
										
											2022-06-16 12:18:05 +02:00
										 |  |  | 		displayName: "Query Parameters", | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | 		displayOptions: { | 
					
						
							|  |  |  | 			show: { | 
					
						
							|  |  |  | 				resource: ["httpverbs"], | 
					
						
							|  |  |  | 				operation: ["delete"], | 
					
						
							|  |  |  | 				typeofData: ["queryParameter"], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		options: [ | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "keyvalue", | 
					
						
							|  |  |  | 				displayName: "Key:Value", | 
					
						
							|  |  |  | 				values: [ | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						displayName: "Key", | 
					
						
							|  |  |  | 						name: "key", | 
					
						
							|  |  |  | 						type: "string", | 
					
						
							|  |  |  | 						default: "", | 
					
						
							|  |  |  | 						required: true, | 
					
						
							|  |  |  | 						description: "Key of query parameter", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						displayName: "Value", | 
					
						
							|  |  |  | 						name: "value", | 
					
						
							|  |  |  | 						type: "string", | 
					
						
							|  |  |  | 						default: "", | 
					
						
							|  |  |  | 						routing: { | 
					
						
							|  |  |  | 							send: { | 
					
						
							|  |  |  | 								property: "={{$parent.key}}", | 
					
						
							|  |  |  | 								type: "query", | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						required: true, | 
					
						
							|  |  |  | 						description: "Value of query parameter", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		], | 
					
						
							|  |  |  | 		type: "fixedCollection", | 
					
						
							|  |  |  | 		typeOptions: { | 
					
						
							|  |  |  | 			multipleValues: true, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		name: "arguments", | 
					
						
							|  |  |  | 		default: {}, | 
					
						
							| 
									
										
										
										
											2022-06-16 12:18:05 +02:00
										 |  |  | 		description: "The request's JSON properties", | 
					
						
							|  |  |  | 		displayName: "JSON Object", | 
					
						
							| 
									
										
										
										
											2022-06-16 11:59:25 +02:00
										 |  |  | 		displayOptions: { | 
					
						
							|  |  |  | 			show: { | 
					
						
							|  |  |  | 				resource: ["httpverbs"], | 
					
						
							|  |  |  | 				operation: ["delete"], | 
					
						
							|  |  |  | 				typeofData: ["jsonData"], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 		options: [ | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 				name: "keyvalue", | 
					
						
							|  |  |  | 				displayName: "Key:Value", | 
					
						
							|  |  |  | 				values: [ | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						displayName: "Key", | 
					
						
							|  |  |  | 						name: "key", | 
					
						
							|  |  |  | 						type: "string", | 
					
						
							|  |  |  | 						default: "", | 
					
						
							|  |  |  | 						required: true, | 
					
						
							|  |  |  | 						description: "Key of json property", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 					{ | 
					
						
							|  |  |  | 						displayName: "Value", | 
					
						
							|  |  |  | 						name: "value", | 
					
						
							|  |  |  | 						type: "string", | 
					
						
							|  |  |  | 						default: "", | 
					
						
							|  |  |  | 						routing: { | 
					
						
							|  |  |  | 							send: { | 
					
						
							|  |  |  | 								property: "={{$parent.key}}", | 
					
						
							|  |  |  | 								type: "body", | 
					
						
							|  |  |  | 							}, | 
					
						
							|  |  |  | 						}, | 
					
						
							|  |  |  | 						required: true, | 
					
						
							|  |  |  | 						description: "Value of json property", | 
					
						
							|  |  |  | 					}, | 
					
						
							|  |  |  | 				], | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		], | 
					
						
							|  |  |  | 		type: "fixedCollection", | 
					
						
							|  |  |  | 		typeOptions: { | 
					
						
							|  |  |  | 			multipleValues: true, | 
					
						
							|  |  |  | 		}, | 
					
						
							|  |  |  | 	}, | 
					
						
							|  |  |  | ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const httpVerbFields: Array<INodeProperties> = [ | 
					
						
							|  |  |  | 	/* -------------------------------------------------------------------------- */ | 
					
						
							|  |  |  | 	/*                                Http Verbs:Get                               */ | 
					
						
							|  |  |  | 	/* -------------------------------------------------------------------------- */ | 
					
						
							|  |  |  | 	...getOperation, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/* -------------------------------------------------------------------------- */ | 
					
						
							|  |  |  | 	/*                                Http Verbs:Delete                           */ | 
					
						
							|  |  |  | 	/* -------------------------------------------------------------------------- */ | 
					
						
							|  |  |  | 	...deleteOperation, | 
					
						
							|  |  |  | ]; |