add purge action
This commit is contained in:
14
src/main.rs
14
src/main.rs
@ -66,6 +66,7 @@ enum ScriptActionParseResult{
|
||||
Block,
|
||||
Exit,
|
||||
Delete,
|
||||
Purge,
|
||||
Skip,
|
||||
}
|
||||
struct ParseScriptActionErr;
|
||||
@ -77,6 +78,7 @@ impl std::str::FromStr for ScriptActionParseResult{
|
||||
"block\n"=>Ok(Self::Block),
|
||||
"exit\n"=>Ok(Self::Exit),
|
||||
"delete\n"=>Ok(Self::Delete),
|
||||
"purge\n"=>Ok(Self::Purge),
|
||||
"skip\n"=>Ok(Self::Skip),
|
||||
_=>Err(ParseScriptActionErr),
|
||||
}
|
||||
@ -93,6 +95,7 @@ enum ReviewError{
|
||||
NoScript,
|
||||
WriteCurrent(std::io::Error),
|
||||
ActionIO(std::io::Error),
|
||||
PurgeScript(submissions_api::Error),
|
||||
ReadCurrent(std::io::Error),
|
||||
DeduplicateModified(submissions_api::types::SingleItemError),
|
||||
UploadModified(submissions_api::Error),
|
||||
@ -152,6 +155,17 @@ async fn review(config:ReviewConfig)->Result<(),ReviewError>{
|
||||
let mut to_script_id=None;
|
||||
// interpret action
|
||||
let reviewed_policy=match script_action{
|
||||
ScriptActionParseResult::Purge=>{
|
||||
// remove script and policy from the database.
|
||||
let remove_script_fut=api.delete_script(submissions_api::types::GetScriptRequest{
|
||||
ScriptID:script_response.ID,
|
||||
});
|
||||
let remove_script_policy_fut=api.delete_script_policy(submissions_api::types::GetScriptPolicyRequest{
|
||||
ScriptPolicyID:unreviewed_policy.ID,
|
||||
});
|
||||
tokio::try_join!(remove_script_fut,remove_script_policy_fut).map_err(ReviewError::PurgeScript)?;
|
||||
continue;
|
||||
},
|
||||
ScriptActionParseResult::Pass=>{
|
||||
//if current.lua was updated, create an allowed and replace file and set script_action to replace(new_id)
|
||||
let modified_source=tokio::fs::read_to_string("current.lua").await.map_err(ReviewError::ReadCurrent)?;
|
||||
|
Reference in New Issue
Block a user