fix: oops must update via primary key

This commit is contained in:
əlemi 2024-05-29 20:30:16 +02:00
parent 78f71deead
commit f5d0eceaca
Signed by: alemi
GPG key ID: A4895B84D311642C

View file

@ -1,5 +1,5 @@
use futures::TryStreamExt; use futures::TryStreamExt;
use sea_orm::{ActiveValue::{Set, NotSet}, ColumnTrait, EntityTrait, QueryFilter}; use sea_orm::{ActiveValue::Set, ColumnTrait, EntityTrait, QueryFilter};
use crate::server::fetcher::Fetcher; use crate::server::fetcher::Fetcher;
@ -20,10 +20,9 @@ pub async fn update_users(ctx: crate::server::Context, days: i64) -> crate::Resu
Err(e) => tracing::warn!("could not update user {}: {e}", user.id), Err(e) => tracing::warn!("could not update user {}: {e}", user.id),
Ok(doc) => match crate::model::actor::ActiveModel::new(&doc) { Ok(doc) => match crate::model::actor::ActiveModel::new(&doc) {
Ok(mut u) => { Ok(mut u) => {
u.internal = NotSet; u.internal = Set(user.internal);
u.updated = Set(chrono::Utc::now()); u.updated = Set(chrono::Utc::now());
let uid = u.id.take().unwrap_or(user.id.clone()); insertions.push((user.id, u));
insertions.push((uid, u));
count += 1; count += 1;
}, },
Err(e) => tracing::warn!("failed deserializing user '{}': {e}", user.id), Err(e) => tracing::warn!("failed deserializing user '{}': {e}", user.id),
@ -35,7 +34,6 @@ pub async fn update_users(ctx: crate::server::Context, days: i64) -> crate::Resu
for (uid, user_model) in insertions { for (uid, user_model) in insertions {
tracing::info!("updating user {}", uid); tracing::info!("updating user {}", uid);
crate::model::actor::Entity::update(user_model) crate::model::actor::Entity::update(user_model)
.filter(crate::model::actor::Column::Id.eq(uid))
.exec(ctx.db()) .exec(ctx.db())
.await?; .await?;
} }