passing a modified script means it must also auto-pass in a future mapfix

This commit is contained in:
2025-07-01 03:15:01 -07:00
parent 596b05c23d
commit 28affbf191

@ -114,6 +114,7 @@ enum ReviewError{
ReadCurrent(std::io::Error),
DeduplicateModified(submissions_api::types::ScriptSingleItemError),
UploadModified(submissions_api::Error),
UploadModifiedPolicy(submissions_api::Error),
UpdateScriptPolicy(submissions_api::Error),
}
@ -198,12 +199,25 @@ async fn review(config:ReviewConfig)->Result<(),ReviewError>{
// write to_script_id, uploading modified script if necessary
to_script_id=Some(match maybe_script_response{
Some(script_response)=>script_response.ID,
None=>api.create_script(submissions_api::types::CreateScriptRequest{
Name:script_response.Name.as_str(),
Source:modified_source.as_str(),
ResourceType:script_response.ResourceType,
ResourceID:Some(script_response.ResourceID),
}).await.map_err(ReviewError::UploadModified)?.ScriptID
None=>{
// create a new script on the fly
let new_script=api.create_script(submissions_api::types::CreateScriptRequest{
Name:script_response.Name.as_str(),
Source:modified_source.as_str(),
ResourceType:script_response.ResourceType,
ResourceID:Some(script_response.ResourceID),
}).await.map_err(ReviewError::UploadModified)?;
// create an "allowed" policy for this script to auto-pass it
// if it shows up in a map fix
api.create_script_policy(submissions_api::types::CreateScriptPolicyRequest{
FromScriptID:new_script.ScriptID,
ToScriptID:new_script.ScriptID,
Policy:submissions_api::types::Policy::Allowed,
}).await.map_err(ReviewError::UploadModifiedPolicy)?;
new_script.ScriptID
}
});
// use replace policy