use serde_json::json;
use crate::json::templates::bh_41::prepare_mssqlsvc_spn_json_template;
pub fn check_spn(serviceprincipalname: &String) -> serde_json::value::Value
{
let mut mssqlsvc_spn = prepare_mssqlsvc_spn_json_template();
if serviceprincipalname.to_lowercase().contains("mssqlsvc")
{
if serviceprincipalname.to_lowercase().contains(":")
{
let split = serviceprincipalname.split(":");
let vec = split.collect::<Vec<&str>>();
let mut fqdn = vec[0].to_owned();
let value = vec[1].to_owned();
let port = value.parse::<i32>().unwrap_or(1433);
let split = fqdn.split("/");
let vec = split.collect::<Vec<&str>>();
fqdn = vec[1].to_owned().to_uppercase();
mssqlsvc_spn["ComputerSID"] = fqdn.into();
mssqlsvc_spn["Port"] = port.into();
}
else
{
let split = serviceprincipalname.split("/");
let vec = split.collect::<Vec<&str>>();
let fqdn = vec[1].to_owned().to_uppercase();
let port = 1433;
mssqlsvc_spn["ComputerSID"] = fqdn.into();
mssqlsvc_spn["Port"] = port.into();
}
}
else
{
mssqlsvc_spn = json!({});
}
return mssqlsvc_spn
}