forked from github-starred/komodo
fix delete resource also remove from user recently viewed
This commit is contained in:
@@ -12,6 +12,7 @@ use monitor_types::{
|
||||
},
|
||||
monitor_timestamp,
|
||||
};
|
||||
use mungos::mongodb::bson::{doc, to_bson};
|
||||
use periphery_client::{requests, PeripheryClient};
|
||||
use rand::{thread_rng, Rng};
|
||||
|
||||
@@ -164,6 +165,27 @@ impl State {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub async fn remove_from_recently_viewed(
|
||||
&self,
|
||||
resource: impl Into<ResourceTarget>,
|
||||
) -> anyhow::Result<()> {
|
||||
let resource: ResourceTarget = resource.into();
|
||||
self.db
|
||||
.users
|
||||
.update_many(
|
||||
doc! {},
|
||||
doc! {
|
||||
"$pull": {
|
||||
"recently_viewed":
|
||||
to_bson(&resource).context("failed to convert resource to bson")?
|
||||
}
|
||||
},
|
||||
)
|
||||
.await
|
||||
.context("failed to remove resource from users recently viewed")?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
pub fn periphery_client(&self, server: &Server) -> PeripheryClient {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use anyhow::Context;
|
||||
use async_trait::async_trait;
|
||||
use monitor_types::{
|
||||
entities::{alerter::Alerter, update::ResourceTarget, Operation, PermissionLevel},
|
||||
entities::{alerter::Alerter, Operation, PermissionLevel},
|
||||
monitor_timestamp,
|
||||
requests::write::{CopyAlerter, CreateAlerter, DeleteAlerter, UpdateAlerter},
|
||||
};
|
||||
@@ -124,11 +124,7 @@ impl Resolve<DeleteAlerter, RequestUser> for State {
|
||||
.get_resource_check_permissions(&id, &user, PermissionLevel::Update)
|
||||
.await?;
|
||||
|
||||
let mut update = make_update(
|
||||
ResourceTarget::Alerter(id.clone()),
|
||||
Operation::DeleteAlerter,
|
||||
&user,
|
||||
);
|
||||
let mut update = make_update(&alerter, Operation::DeleteAlerter, &user);
|
||||
|
||||
self.db
|
||||
.alerters
|
||||
@@ -145,6 +141,8 @@ impl Resolve<DeleteAlerter, RequestUser> for State {
|
||||
|
||||
self.add_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&alerter).await?;
|
||||
|
||||
Ok(alerter)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -195,6 +195,8 @@ impl Resolve<DeleteBuild, RequestUser> for State {
|
||||
update.finalize();
|
||||
self.update_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&build).await?;
|
||||
|
||||
Ok(build)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ impl Resolve<DeleteBuilder, RequestUser> for State {
|
||||
.context("failed to delete builder from database")?;
|
||||
|
||||
let mut update = Update {
|
||||
target: ResourceTarget::Builder(id.clone()),
|
||||
target: (&builder).into(),
|
||||
operation: Operation::DeleteBuilder,
|
||||
start_ts,
|
||||
operator: user.id.clone(),
|
||||
@@ -167,6 +167,8 @@ impl Resolve<DeleteBuilder, RequestUser> for State {
|
||||
update.finalize();
|
||||
self.add_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&builder).await?;
|
||||
|
||||
Ok(builder)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -252,6 +252,8 @@ impl Resolve<DeleteDeployment, RequestUser> for State {
|
||||
|
||||
self.update_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&deployment).await?;
|
||||
|
||||
Ok(deployment)
|
||||
};
|
||||
|
||||
|
||||
@@ -216,6 +216,8 @@ impl Resolve<DeleteRepo, RequestUser> for State {
|
||||
update.finalize();
|
||||
self.update_update(update).await?;
|
||||
|
||||
self.remove_from_recently_viewed(&repo).await?;
|
||||
|
||||
Ok(repo)
|
||||
};
|
||||
|
||||
|
||||
@@ -131,6 +131,8 @@ impl Resolve<DeleteServer, RequestUser> for State {
|
||||
|
||||
self.server_status_cache.remove(&id).await;
|
||||
|
||||
self.remove_from_recently_viewed(&server).await?;
|
||||
|
||||
Ok(server)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user