use crate::{ResponseData};
use crate::datastore::Response;
use nullnet_liberror::{Error, ErrorHandler, Location, location};
use std::str::FromStr;
use tonic::{Request, metadata::MetadataValue};
pub(crate) fn authorize_request<T>(request: T, token: &str) -> Result<Request<T>, Error> {
let mut request = Request::new(request);
let value = MetadataValue::from_str(token).handle_err(location!())?;
request.metadata_mut().insert("authorization", value);
Ok(request)
}
pub(crate) fn validate_response_and_convert_to_reponse_data(
response: &Response,
) -> Result<ResponseData, Error> {
if !response.success {
return Err(format!(
"Request failed. Status '{}'. Message '{}'. Error '{}'",
response.status_code, response.message, response.error
))
.handle_err(location!());
}
Ok(ResponseData {
count: response.count,
data: response.data.clone(),
encoding: response.encoding.clone(),
})
}