chore: initial sanitized public snapshot
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
use std::collections::BTreeMap;
|
||||
|
||||
use crate::{
|
||||
model::{RpcError, RpcValue},
|
||||
xmlrpc::{XmlRpcMember, XmlRpcValue},
|
||||
};
|
||||
|
||||
/// Converts an RPC error into the JSON-RPC error-object shape used by multicall.
|
||||
pub(super) fn rpc_error_value(error: RpcError) -> RpcValue {
|
||||
RpcValue::Object(BTreeMap::from([
|
||||
(
|
||||
"code".to_owned(),
|
||||
RpcValue::Number(i64::from(error.code as i32)),
|
||||
),
|
||||
("message".to_owned(), RpcValue::String(error.message)),
|
||||
]))
|
||||
}
|
||||
|
||||
/// Converts an RPC error into the XML-RPC fault-value shape used by multicall.
|
||||
pub(super) fn xmlrpc_error_value(error: RpcError) -> XmlRpcValue {
|
||||
xmlrpc_fault_value(xmlrpc_fault_from_error(error))
|
||||
}
|
||||
|
||||
/// Serializes an XML-RPC fault struct into a value payload.
|
||||
pub(super) fn xmlrpc_fault_value(fault: crate::xmlrpc::XmlRpcFault) -> XmlRpcValue {
|
||||
XmlRpcValue::Struct(vec![
|
||||
XmlRpcMember {
|
||||
name: "faultCode".to_owned(),
|
||||
value: XmlRpcValue::Int(fault.code),
|
||||
},
|
||||
XmlRpcMember {
|
||||
name: "faultString".to_owned(),
|
||||
value: XmlRpcValue::String(fault.message),
|
||||
},
|
||||
])
|
||||
}
|
||||
|
||||
/// Wraps an RPC error in the XML-RPC fault envelope expected by aria2 clients.
|
||||
pub(super) fn xmlrpc_fault_from_error(error: RpcError) -> crate::xmlrpc::XmlRpcFault {
|
||||
let message = error.message.clone();
|
||||
crate::xmlrpc::XmlRpcFault {
|
||||
code: 1,
|
||||
message,
|
||||
error: Some(error),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user