Simplify handlers for post and other data methods
This commit is contained in:
parent
02628915e3
commit
96f2b1821e
@ -138,27 +138,22 @@ impl AxumBackend {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn add_data_route(&self, method: HttpMethod, path: &str, req_stream: Sender<HttpRequest>) {
|
fn add_data_route(&self, method: HttpMethod, path: &str, req_stream: Sender<HttpRequest>) {
|
||||||
let handler = match method {
|
let handler_fn = |Query(query): Query<HashMap<String, String>>, payload: Option<Bytes>| async move {
|
||||||
HttpMethod::POST => post(
|
|
||||||
|Query(query): Query<HashMap<String, String>>, payload: Option<Bytes>| async move {
|
|
||||||
handle_req(req_stream, query, payload).await
|
handle_req(req_stream, query, payload).await
|
||||||
},
|
|
||||||
),
|
|
||||||
HttpMethod::PUT => put(
|
|
||||||
|Query(query): Query<HashMap<String, String>>, payload: Option<Bytes>| async move {
|
|
||||||
handle_req(req_stream, query, payload).await
|
|
||||||
},
|
|
||||||
),
|
|
||||||
HttpMethod::PATCH => patch(
|
|
||||||
|Query(query): Query<HashMap<String, String>>, payload: Option<Bytes>| async move {
|
|
||||||
handle_req(req_stream, query, payload).await
|
|
||||||
},
|
|
||||||
),
|
|
||||||
_ => unimplemented!(),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let handlers = {
|
||||||
|
let mut handlers = HashMap::new();
|
||||||
|
handlers.insert(HttpMethod::POST, post(handler_fn.clone()));
|
||||||
|
handlers.insert(HttpMethod::PUT, put(handler_fn.clone()));
|
||||||
|
handlers.insert(HttpMethod::PATCH, patch(handler_fn));
|
||||||
|
handlers
|
||||||
|
};
|
||||||
|
|
||||||
|
let handler = handlers.get(&method).unwrap_or_else(|| unimplemented!());
|
||||||
|
|
||||||
let mut router = self.router.lock();
|
let mut router = self.router.lock();
|
||||||
*router = router.clone().route(path, handler)
|
*router = router.clone().route(path, handler.clone())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user