Revert breaking changes

This commit is contained in:
Chris Tsang 2021-09-09 23:16:19 +08:00
parent 11208d627b
commit 19ec35f1b5
2 changed files with 16 additions and 19 deletions

View File

@ -92,7 +92,7 @@ pub trait ActiveModelTrait: Clone + Debug {
} }
async fn update(self, db: &DatabaseConnection) -> Result<Self, DbErr> { async fn update(self, db: &DatabaseConnection) -> Result<Self, DbErr> {
let exec = Self::Entity::update(self).prepare_filters().exec(db); let exec = Self::Entity::update(self).exec(db);
exec.await exec.await
} }

View File

@ -37,7 +37,6 @@ impl Update {
/// id: ActiveValue::set(1), /// id: ActiveValue::set(1),
/// name: ActiveValue::set("Apple Pie".to_owned()), /// name: ActiveValue::set("Apple Pie".to_owned()),
/// }) /// })
/// .filter(cake::Column::Id.eq(1))
/// .build(DbBackend::Postgres) /// .build(DbBackend::Postgres)
/// .to_string(), /// .to_string(),
/// r#"UPDATE "cake" SET "name" = 'Apple Pie' WHERE "cake"."id" = 1"#, /// r#"UPDATE "cake" SET "name" = 'Apple Pie' WHERE "cake"."id" = 1"#,
@ -48,12 +47,13 @@ impl Update {
E: EntityTrait, E: EntityTrait,
A: ActiveModelTrait<Entity = E>, A: ActiveModelTrait<Entity = E>,
{ {
let myself = UpdateOne { let mut myself = UpdateOne {
query: UpdateStatement::new() query: UpdateStatement::new()
.table(A::Entity::default().table_ref()) .table(A::Entity::default().table_ref())
.to_owned(), .to_owned(),
model, model,
}; };
myself = myself.prepare_filters();
myself.prepare_values() myself.prepare_values()
} }
@ -86,19 +86,6 @@ impl<A> UpdateOne<A>
where where
A: ActiveModelTrait, A: ActiveModelTrait,
{ {
pub(crate) fn prepare_values(mut self) -> Self {
for col in <A::Entity as EntityTrait>::Column::iter() {
if <A::Entity as EntityTrait>::PrimaryKey::from_column(col).is_some() {
continue;
}
let av = self.model.get(col);
if av.is_set() {
self.query.value(col, av.unwrap());
}
}
self
}
pub(crate) fn prepare_filters(mut self) -> Self { pub(crate) fn prepare_filters(mut self) -> Self {
for key in <A::Entity as EntityTrait>::PrimaryKey::iter() { for key in <A::Entity as EntityTrait>::PrimaryKey::iter() {
let col = key.into_column(); let col = key.into_column();
@ -111,6 +98,19 @@ where
} }
self self
} }
pub(crate) fn prepare_values(mut self) -> Self {
for col in <A::Entity as EntityTrait>::Column::iter() {
if <A::Entity as EntityTrait>::PrimaryKey::from_column(col).is_some() {
continue;
}
let av = self.model.get(col);
if av.is_set() {
self.query.value(col, av.unwrap());
}
}
self
}
} }
impl<A> QueryFilter for UpdateOne<A> impl<A> QueryFilter for UpdateOne<A>
@ -199,7 +199,6 @@ mod tests {
id: ActiveValue::set(1), id: ActiveValue::set(1),
name: ActiveValue::set("Apple Pie".to_owned()), name: ActiveValue::set("Apple Pie".to_owned()),
}) })
.filter(cake::Column::Id.eq(1))
.build(DbBackend::Postgres) .build(DbBackend::Postgres)
.to_string(), .to_string(),
r#"UPDATE "cake" SET "name" = 'Apple Pie' WHERE "cake"."id" = 1"#, r#"UPDATE "cake" SET "name" = 'Apple Pie' WHERE "cake"."id" = 1"#,
@ -214,7 +213,6 @@ mod tests {
name: ActiveValue::set("Orange".to_owned()), name: ActiveValue::set("Orange".to_owned()),
cake_id: ActiveValue::unset(), cake_id: ActiveValue::unset(),
}) })
.filter(fruit::Column::Id.eq(1))
.build(DbBackend::Postgres) .build(DbBackend::Postgres)
.to_string(), .to_string(),
r#"UPDATE "fruit" SET "name" = 'Orange' WHERE "fruit"."id" = 1"#, r#"UPDATE "fruit" SET "name" = 'Orange' WHERE "fruit"."id" = 1"#,
@ -229,7 +227,6 @@ mod tests {
name: ActiveValue::unchanged("Apple".to_owned()), name: ActiveValue::unchanged("Apple".to_owned()),
cake_id: ActiveValue::set(Some(3)), cake_id: ActiveValue::set(Some(3)),
}) })
.filter(fruit::Column::Id.eq(2))
.build(DbBackend::Postgres) .build(DbBackend::Postgres)
.to_string(), .to_string(),
r#"UPDATE "fruit" SET "cake_id" = 3 WHERE "fruit"."id" = 2"#, r#"UPDATE "fruit" SET "cake_id" = 3 WHERE "fruit"."id" = 2"#,