From 482e3f60112d0b244c8733f4a0fae8323ee1bc37 Mon Sep 17 00:00:00 2001 From: Jannik Keye Date: Thu, 7 Mar 2019 21:02:34 +0100 Subject: [PATCH] feat: enable use of patch as request method --- src/client/mod.rs | 7 +++++++ src/client/request.rs | 7 +++++++ src/resource.rs | 6 ++++++ src/test.rs | 5 +++++ 4 files changed, 25 insertions(+) diff --git a/src/client/mod.rs b/src/client/mod.rs index 5321e4b05..8c15fae4a 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -105,6 +105,13 @@ pub fn post>(uri: U) -> ClientRequestBuilder { builder } +/// Create request builder for `PATCH` requests +pub fn patch>(uri: U) -> ClientRequestBuilder { + let mut builder = ClientRequest::build(); + builder.method(Method::PATCH).uri(uri); + builder +} + /// Create request builder for `PUT` requests pub fn put>(uri: U) -> ClientRequestBuilder { let mut builder = ClientRequest::build(); diff --git a/src/client/request.rs b/src/client/request.rs index 89789933c..bf5145df4 100644 --- a/src/client/request.rs +++ b/src/client/request.rs @@ -112,6 +112,13 @@ impl ClientRequest { builder } + /// Create request builder for `PATCH` request + pub fn patch>(uri: U) -> ClientRequestBuilder { + let mut builder = ClientRequest::build(); + builder.method(Method::PATCH).uri(uri); + builder + } + /// Create request builder for `PUT` request pub fn put>(uri: U) -> ClientRequestBuilder { let mut builder = ClientRequest::build(); diff --git a/src/resource.rs b/src/resource.rs index d884dd447..78aea07cc 100644 --- a/src/resource.rs +++ b/src/resource.rs @@ -107,6 +107,12 @@ impl Resource { self.routes.last_mut().unwrap().filter(pred::Post()) } + /// Register a new `PATCH` route. + pub fn patch(&mut self) -> &mut Route { + self.routes.push(Route::default()); + self.routes.last_mut().unwrap().filter(pred::Patch()) + } + /// Register a new `PUT` route. pub fn put(&mut self) -> &mut Route { self.routes.push(Route::default()); diff --git a/src/test.rs b/src/test.rs index 1d86db9ff..584c02a58 100644 --- a/src/test.rs +++ b/src/test.rs @@ -239,6 +239,11 @@ impl TestServer { ClientRequest::post(self.url("/").as_str()) } + /// Create `PATCH` request + pub fn patch(&self) -> ClientRequestBuilder { + ClientRequest::patch(self.url("/").as_str()) + } + /// Create `HEAD` request pub fn head(&self) -> ClientRequestBuilder { ClientRequest::head(self.url("/").as_str())