fix delete resource also remove from user recently viewed

This commit is contained in:
mbecker20
2023-08-06 01:49:12 -04:00
parent 417dc7dac1
commit 82ed74429c
7 changed files with 37 additions and 7 deletions

View File

@@ -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 {

View File

@@ -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)
}
}

View File

@@ -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)
}
}

View File

@@ -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)
}
}

View File

@@ -252,6 +252,8 @@ impl Resolve<DeleteDeployment, RequestUser> for State {
self.update_update(update).await?;
self.remove_from_recently_viewed(&deployment).await?;
Ok(deployment)
};

View File

@@ -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)
};

View File

@@ -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)
}
}