branch: externals/plz
commit e2d07838e3b64ee5ebe59d4c3c9011adefb7b58e
Merge: 9fb22d84d9 2867fba729
Author: Adam Porter <a...@alphapapa.net>
Commit: Adam Porter <a...@alphapapa.net>

    Merge: Support HTTP PATCH method
    
    See #49.
---
 README.org        |  4 +++-
 plz.el            |  2 +-
 tests/test-plz.el | 14 ++++++++++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/README.org b/README.org
index 2705cbddc3..0afc1d0e97 100644
--- a/README.org
+++ b/README.org
@@ -190,7 +190,9 @@ You may also clear a queue with ~plz-clear~, which cancels 
any active or queued
 
 ** 0.10-pre
 
-Nothing new yet.
+*Additions*
+
++ Support for the HTTP PATCH method.  
([[https://github.com/alphapapa/plz.el/pull/49][#49]].  Thanks to 
[[https://github.com/fpvmorais][Pedro Morais]].)
 
 ** 0.9.1
 
diff --git a/plz.el b/plz.el
index 903d71e6b9..22cf6debf1 100644
--- a/plz.el
+++ b/plz.el
@@ -456,7 +456,7 @@ into the process buffer.
                                       ;; requests which output to the terminal.
                                       (list (cons "--dump-header" 
null-device))))
                                    (pcase method
-                                     ((or 'put 'post)
+                                     ((or 'put 'post 'patch)
                                       (list
                                        ;; It appears that this must be the 
last argument
                                        ;; in order to pass data on the rest of 
STDIN.
diff --git a/tests/test-plz.el b/tests/test-plz.el
index 415edfd6f5..7484cb284c 100644
--- a/tests/test-plz.el
+++ b/tests/test-plz.el
@@ -171,6 +171,20 @@ in URL-encoded form)."
       (should (string-match "curl" .headers.User-Agent))
       (should (string= "value" (alist-get 'key (json-read-from-string 
.data)))))))
 
+(plz-deftest plz-patch-json-string nil
+  (let* ((json-string (json-encode (list (cons "key" "value"))))
+         (response-json)
+         (process (plz 'patch (url "/patch")
+                    :headers '(("Content-Type" . "application/json"))
+                    :body json-string
+                    :as #'json-read
+                    :then (lambda (json)
+                            (setf response-json json)))))
+    (plz-test-wait process)
+    (let-alist response-json
+      (should (string-match "curl" .headers.User-Agent))
+      (should (string= "value" (alist-get 'key (json-read-from-string 
.data)))))))
+
 (plz-deftest plz-post-jpeg-string nil
   (let* ((jpeg-to-upload (plz 'get (url "/image/jpeg")
                            :as 'binary :then 'sync))

Reply via email to