mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 04:01:58 +00:00
structured ws response
This commit is contained in:
committed by
Aiden McClelland
parent
f9e0fe8fc8
commit
261509c841
@@ -13,7 +13,7 @@ use patch_db::{Dump, Revision};
|
|||||||
use rpc_toolkit::command;
|
use rpc_toolkit::command;
|
||||||
use rpc_toolkit::hyper::upgrade::Upgraded;
|
use rpc_toolkit::hyper::upgrade::Upgraded;
|
||||||
use rpc_toolkit::hyper::{Body, Error as HyperError, Request, Response};
|
use rpc_toolkit::hyper::{Body, Error as HyperError, Request, Response};
|
||||||
use rpc_toolkit::yajrc::RpcError;
|
use rpc_toolkit::yajrc::{GenericRpcMethod, RpcError, RpcResponse};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use tokio::task::JoinError;
|
use tokio::task::JoinError;
|
||||||
@@ -69,13 +69,33 @@ async fn ws_handler<
|
|||||||
.ok_or_else(|| {
|
.ok_or_else(|| {
|
||||||
Error::new(anyhow!("UNAUTHORIZED"), crate::ErrorKind::Authorization)
|
Error::new(anyhow!("UNAUTHORIZED"), crate::ErrorKind::Authorization)
|
||||||
})?;
|
})?;
|
||||||
crate::middleware::auth::is_authed(&ctx, &hash_token(id.get_value())).await?;
|
if let Err(e) =
|
||||||
|
crate::middleware::auth::is_authed(&ctx, &hash_token(id.get_value())).await
|
||||||
|
{
|
||||||
|
stream
|
||||||
|
.send(Message::Text(
|
||||||
|
serde_json::to_string(
|
||||||
|
&RpcResponse::<GenericRpcMethod<String>>::from_result(
|
||||||
|
Err::<_, RpcError>(e.into()),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.with_kind(crate::ErrorKind::Serialization)?,
|
||||||
|
))
|
||||||
|
.await
|
||||||
|
.with_kind(crate::ErrorKind::Network)?;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stream
|
stream
|
||||||
.send(Message::Text(
|
.send(Message::Text(
|
||||||
rpc_toolkit::serde_json::to_string(&dump).with_kind(crate::ErrorKind::Serialization)?,
|
serde_json::to_string(&RpcResponse::<GenericRpcMethod<String>>::from_result(Ok::<
|
||||||
|
_,
|
||||||
|
RpcError,
|
||||||
|
>(
|
||||||
|
serde_json::to_value(&dump).with_kind(crate::ErrorKind::Serialization)?,
|
||||||
|
)))
|
||||||
|
.with_kind(crate::ErrorKind::Serialization)?,
|
||||||
))
|
))
|
||||||
.await
|
.await
|
||||||
.with_kind(crate::ErrorKind::Network)?;
|
.with_kind(crate::ErrorKind::Network)?;
|
||||||
@@ -86,8 +106,12 @@ async fn ws_handler<
|
|||||||
let rev = new_rev.with_kind(crate::ErrorKind::Database)?;
|
let rev = new_rev.with_kind(crate::ErrorKind::Database)?;
|
||||||
stream
|
stream
|
||||||
.send(Message::Text(
|
.send(Message::Text(
|
||||||
rpc_toolkit::serde_json::to_string(&rev)
|
serde_json::to_string(
|
||||||
.with_kind(crate::ErrorKind::Serialization)?,
|
&RpcResponse::<GenericRpcMethod<String>>::from_result(Ok::<_, RpcError>(
|
||||||
|
serde_json::to_value(&rev).with_kind(crate::ErrorKind::Serialization)?,
|
||||||
|
)),
|
||||||
|
)
|
||||||
|
.with_kind(crate::ErrorKind::Serialization)?,
|
||||||
))
|
))
|
||||||
.await
|
.await
|
||||||
.with_kind(crate::ErrorKind::Network)?;
|
.with_kind(crate::ErrorKind::Network)?;
|
||||||
|
|||||||
Reference in New Issue
Block a user