Expose post_tx in OwnerAPI Post (#1795)

* Add POST post_tx in wallet_owner_api
* Add docs for post_tx
This commit is contained in:
Quentin Le Sceller
2018-10-21 22:26:35 +02:00
committed by Ignotus Peverell
parent 0d06561a91
commit 0852b0c4cf
3 changed files with 107 additions and 20 deletions
+30
View File
@@ -358,6 +358,32 @@ where
}
}
fn post_tx(
&self,
req: Request<Body>,
api: APIOwner<T, C, K>,
) -> Box<Future<Item = (), Error = Error> + Send> {
let params = match req.uri().query() {
Some(query_string) => form_urlencoded::parse(query_string.as_bytes())
.into_owned()
.fold(HashMap::new(), |mut hm, (k, v)| {
hm.entry(k).or_insert(vec![]).push(v);
hm
}),
None => HashMap::new(),
};
let fluff = params.get("fluff").is_some();
Box::new(
parse_body(req).and_then(move |slate| match api.post_tx(&slate, fluff) {
Ok(_) => ok(()),
Err(e) => {
error!(LOGGER, "post_tx: failed with error: {}", e);
err(e)
}
}),
)
}
fn issue_burn_tx(
&self,
_req: Request<Body>,
@@ -392,6 +418,10 @@ where
self.cancel_tx(req, api)
.and_then(|_| ok(response(StatusCode::OK, ""))),
),
"post_tx" => Box::new(
self.post_tx(req, api)
.and_then(|_| ok(response(StatusCode::OK, ""))),
),
"issue_burn_tx" => Box::new(
self.issue_burn_tx(req, api)
.and_then(|_| ok(response(StatusCode::OK, ""))),