From 620d865ff2204e371e783f40d6b9895eb61c3138 Mon Sep 17 00:00:00 2001 From: Jaex Date: Thu, 13 Nov 2014 22:55:25 +0200 Subject: [PATCH] fixed #366: Added PUT, PATCH, DELETE http methods for custom uploader --- HelpersLib/Properties/Resources.Designer.cs | 2 +- HelpersLib/Properties/Resources.resx | 2 +- HelpersLib/Properties/Resources.tr.resx | 2 +- UploadersLib/Enums.cs | 6 +++++- .../HelperClasses/CustomUploaderItem.cs | 18 ++++++++++++++++++ .../TextUploaders/CustomTextUploader.cs | 8 ++++---- .../URLShorteners/CustomURLShortener.cs | 11 ++--------- 7 files changed, 32 insertions(+), 17 deletions(-) diff --git a/HelpersLib/Properties/Resources.Designer.cs b/HelpersLib/Properties/Resources.Designer.cs index 7b147a66d..15f2eb11f 100644 --- a/HelpersLib/Properties/Resources.Designer.cs +++ b/HelpersLib/Properties/Resources.Designer.cs @@ -80,7 +80,7 @@ internal static string ActionsCodeMenuEntry_OutputFilePath_File_path_without_ext } /// - /// Looks up a localized string similar to Add image effects. + /// Looks up a localized string similar to Add image effects / watermark. /// internal static string AfterCaptureTasks_AddImageEffects { get { diff --git a/HelpersLib/Properties/Resources.resx b/HelpersLib/Properties/Resources.resx index 1f2f429f6..bf4851367 100644 --- a/HelpersLib/Properties/Resources.resx +++ b/HelpersLib/Properties/Resources.resx @@ -529,7 +529,7 @@ File size: {2:n0} / {3:n0} KB Custom URL shortener - Add image effects + Add image effects / watermark Open in image editor diff --git a/HelpersLib/Properties/Resources.tr.resx b/HelpersLib/Properties/Resources.tr.resx index 3ec56e1d0..1ed167b63 100644 --- a/HelpersLib/Properties/Resources.tr.resx +++ b/HelpersLib/Properties/Resources.tr.resx @@ -507,7 +507,7 @@ Dosya boyutu: {2:n0} / {3:n0} KB Özel adres kısaltıcı - Resim efekti ekle + Resim efekti / filigran ekle Resim düzenleyicide aç diff --git a/UploadersLib/Enums.cs b/UploadersLib/Enums.cs index 4fc492202..0d91d9180 100644 --- a/UploadersLib/Enums.cs +++ b/UploadersLib/Enums.cs @@ -178,6 +178,7 @@ public enum HttpMethod GET, POST, PUT, + PATCH, DELETE } @@ -271,7 +272,10 @@ public enum CustomUploaderType public enum CustomUploaderRequestType { POST, - GET + GET, + PUT, + PATCH, + DELETE } public enum FTPSEncryption diff --git a/UploadersLib/HelperClasses/CustomUploaderItem.cs b/UploadersLib/HelperClasses/CustomUploaderItem.cs index e9fafa40a..75b432e8e 100644 --- a/UploadersLib/HelperClasses/CustomUploaderItem.cs +++ b/UploadersLib/HelperClasses/CustomUploaderItem.cs @@ -62,6 +62,24 @@ public override string ToString() return Name; } + public HttpMethod GetHttpMethod() + { + switch (RequestType) + { + default: + case CustomUploaderRequestType.POST: + return HttpMethod.POST; + case CustomUploaderRequestType.GET: + return HttpMethod.GET; + case CustomUploaderRequestType.PUT: + return HttpMethod.PUT; + case CustomUploaderRequestType.PATCH: + return HttpMethod.PATCH; + case CustomUploaderRequestType.DELETE: + return HttpMethod.DELETE; + } + } + public Dictionary ParseArguments(string input = null) { Dictionary arguments = new Dictionary(); diff --git a/UploadersLib/TextUploaders/CustomTextUploader.cs b/UploadersLib/TextUploaders/CustomTextUploader.cs index 09ee1c985..7b787c2e9 100644 --- a/UploadersLib/TextUploaders/CustomTextUploader.cs +++ b/UploadersLib/TextUploaders/CustomTextUploader.cs @@ -44,9 +44,9 @@ public override UploadResult UploadText(string text, string fileName) { if (string.IsNullOrEmpty(customUploader.RequestURL)) throw new Exception("'Request URL' must be not empty."); - if ((customUploader.RequestType == CustomUploaderRequestType.GET || string.IsNullOrEmpty(customUploader.FileFormName)) && + if ((customUploader.RequestType != CustomUploaderRequestType.POST || string.IsNullOrEmpty(customUploader.FileFormName)) && (customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$") || x.Value.Contains("%input")))) - throw new Exception("Atleast one '$input$' required for argument value when using GET or non-file POST."); + throw new Exception("Atleast one '$input$' required for argument value."); UploadResult result = new UploadResult(); @@ -67,9 +67,9 @@ public override UploadResult UploadText(string text, string fileName) } } } - else if (customUploader.RequestType == CustomUploaderRequestType.GET) + else { - result.Response = SendRequest(HttpMethod.GET, customUploader.RequestURL, args, responseType: customUploader.ResponseType); + result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.RequestURL, args, responseType: customUploader.ResponseType); } customUploader.ParseResponse(result); diff --git a/UploadersLib/URLShorteners/CustomURLShortener.cs b/UploadersLib/URLShorteners/CustomURLShortener.cs index bf8c16d1f..c354d6446 100644 --- a/UploadersLib/URLShorteners/CustomURLShortener.cs +++ b/UploadersLib/URLShorteners/CustomURLShortener.cs @@ -46,20 +46,13 @@ public override UploadResult ShortenURL(string url) if (string.IsNullOrEmpty(customUploader.RequestURL)) throw new Exception("'Request URL' must be not empty."); if (customUploader.Arguments == null || !customUploader.Arguments.Any(x => x.Value.Contains("$input$") || x.Value.Contains("%input"))) - throw new Exception("Atleast one '$input$' required for argument value when using custom URL shortener."); + throw new Exception("Atleast one '$input$' required for argument value."); UploadResult result = new UploadResult { URL = url }; Dictionary args = customUploader.ParseArguments(url); - if (customUploader.RequestType == CustomUploaderRequestType.POST) - { - result.Response = SendRequest(HttpMethod.POST, customUploader.RequestURL, args, responseType: customUploader.ResponseType); - } - else if (customUploader.RequestType == CustomUploaderRequestType.GET) - { - result.Response = SendRequest(HttpMethod.GET, customUploader.RequestURL, args, responseType: customUploader.ResponseType); - } + result.Response = SendRequest(customUploader.GetHttpMethod(), customUploader.RequestURL, args, responseType: customUploader.ResponseType); customUploader.ParseResponse(result, true);