use serde_json::{self, Value};
use hyper::body::to_bytes;
use hyper::Body;
use std::u8;

pub async fn parse_params(body_raw: &mut Body) -> Result<Value, serde_json::error::Error> {
    let bytes: &[u8] = &*to_bytes(body_raw).await.unwrap(); // rarely fails 
    let values: Value;
    if bytes.len() == 0 {
        values = serde_json::from_str("{}")?;
    }
    else {
        values = serde_json::from_slice(bytes)?;
    }
    Ok(values)
}