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