Working response
This commit is contained in:
+14
-13
@@ -75,14 +75,15 @@ impl Session {
|
|||||||
match msg {
|
match msg {
|
||||||
Message::Request { id, method, data } => {
|
Message::Request { id, method, data } => {
|
||||||
if let Some(m) = s.methods.lock().await.get(&method) {
|
if let Some(m) = s.methods.lock().await.get(&method) {
|
||||||
(m)(id, data).await;
|
if let Some((err, res)) = (m)(id, data).await {
|
||||||
// let s = s.clone();
|
if err {
|
||||||
// if let Ok(req) = serde_json::from_value(value) {
|
s.respond_error(id, res)
|
||||||
// match handler(id, req).await {
|
.await
|
||||||
// Ok(res) => s.respond::<M>(id, res).await,
|
.expect("Failed to respond");
|
||||||
// Err(res) => s.respond_error::<M>(id, res).await,
|
} else {
|
||||||
// };
|
s.respond(id, res).await.expect("Failed to respond");
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Message::Response { id, result } => {
|
Message::Response { id, result } => {
|
||||||
@@ -170,16 +171,16 @@ impl Session {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn respond<M: Method>(&self, to: u32, res: M::Response) -> crate::Result<()> {
|
pub async fn respond(&self, to: u32, val: serde_json::Value) -> crate::Result<()> {
|
||||||
self.send::<M>(&Message::Response {
|
self.send::<GenericMethod>(&Message::Response {
|
||||||
id: to,
|
id: to,
|
||||||
result: res,
|
result: val,
|
||||||
})
|
})
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn respond_error<M: Method>(&self, to: u32, err: M::Error) -> crate::Result<()> {
|
pub async fn respond_error(&self, to: u32, val: serde_json::Value) -> crate::Result<()> {
|
||||||
self.send::<M>(&Message::ErrorResponse { id: to, error: err })
|
self.send::<GenericMethod>(&Message::ErrorResponse { id: to, error: val })
|
||||||
.await
|
.await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user