amqp_api_server/api/input/
sanitizer.rs1use serde_json::{Map, Value};
2use crate::api::input::request::Request;
3
4use crate::error::{Error, ErrorKind};
5
6pub fn sanitize(
7 raw_request: Map<String, Value>,
8 actions: &'static [&'static str],
9) -> Result<Request, Error> {
10 let request = Request::new(raw_request);
11
12 let header = request.try_get_header()?;
13
14 if !actions
15 .iter()
16 .any(|valid_action| (*valid_action).eq(header.action()))
17 {
18 return Err(Error::new(
19 ErrorKind::SanitizationFailure,
20 format!("invalid action detected: {}", header.action()),
21 ));
22 }
23
24 Ok(request)
25}