passing a modified script means it must also auto-pass in a future mapfix
This commit is contained in:
26
src/main.rs
26
src/main.rs
@ -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
|
||||
|
Reference in New Issue
Block a user