parent
2b5a2df950
commit
f8da8345f5
@ -30,6 +30,8 @@
|
||||
})
|
||||
sqls
|
||||
sqlx-cli
|
||||
tree-sitter-grammars.tree-sitter-rust
|
||||
tree-sitter-grammars.tree-sitter-sql
|
||||
];
|
||||
};
|
||||
});
|
||||
|
@ -56,7 +56,7 @@ fn generate_update_query(
|
||||
let update_columns = fields
|
||||
.iter()
|
||||
.enumerate()
|
||||
.map(|(i, &field)| format!("{} = ${}", field.ident, i + 1))
|
||||
.map(|(i, field)| format!("{} = ${}", field.ident, i + 1))
|
||||
.collect::<Vec<String>>()
|
||||
.join(", ");
|
||||
let update_string = format!(
|
||||
@ -79,6 +79,10 @@ fn generate_update_query(
|
||||
}
|
||||
}
|
||||
|
||||
fn generate_upsert_query(table: &str, fields: &[GeormField]) -> proc_macro2::TokenStream {
|
||||
}
|
||||
|
||||
|
||||
fn generate_delete_query(table: &str, id: &GeormField) -> proc_macro2::TokenStream {
|
||||
let delete_string = format!("DELETE FROM {table} WHERE {} = $1", id.ident);
|
||||
let ty = &id.ty;
|
||||
|
13
src/georm.rs
13
src/georm.rs
@ -47,21 +47,12 @@ pub trait Georm<Id> {
|
||||
///
|
||||
/// # Errors
|
||||
/// Returns any error Postgres may have encountered
|
||||
fn create_or_update(
|
||||
fn upsert(
|
||||
&self,
|
||||
pool: &sqlx::PgPool,
|
||||
) -> impl ::std::future::Future<Output = sqlx::Result<Self>>
|
||||
where
|
||||
Self: Sized,
|
||||
{
|
||||
async {
|
||||
if Self::find(pool, self.get_id()).await?.is_some() {
|
||||
self.update(pool).await
|
||||
} else {
|
||||
self.create(pool).await
|
||||
}
|
||||
}
|
||||
}
|
||||
Self: Sized;
|
||||
|
||||
/// Delete the entity from the database if it exists.
|
||||
///
|
||||
|
Loading…
x
Reference in New Issue
Block a user