26 lines
564 B
Rust
26 lines
564 B
Rust
use sqlx::Row;
|
|
|
|
pub async fn insert(
|
|
pool: &sqlx::PgPool,
|
|
message: &textsender_models::message::Message,
|
|
user_id: &uuid::Uuid,
|
|
) -> Result<uuid::Uuid, sqlx::Error> {
|
|
match sqlx::query(
|
|
r#"
|
|
INSERT INTO "messages" (content, user_id)
|
|
VALUES($1, $2) RETURNING id;
|
|
"#,
|
|
)
|
|
.bind(&message.content)
|
|
.bind(user_id)
|
|
.fetch_one(pool)
|
|
.await
|
|
{
|
|
Ok(row) => {
|
|
let id: uuid::Uuid = row.try_get("id")?;
|
|
Ok(id)
|
|
}
|
|
Err(_) => Err(sqlx::Error::RowNotFound),
|
|
}
|
|
}
|