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