View services

This commit is contained in:
Franklin 2023-05-04 14:57:16 -04:00
parent b7b6b63173
commit c168bca044
2 changed files with 14 additions and 3 deletions

View File

@ -1,7 +1,7 @@
use realtor_lp_types::domain::view::View;
use sqlx::PgPool;
use sqlx::{PgPool, Transaction, Postgres};
pub async fn insert_view(conn: &PgPool, view: View) -> Result<View, sqlx::Error> {
pub async fn insert_view<'a>(transaction: &mut Transaction<'a, Postgres>, view: View) -> Result<View, sqlx::Error> {
sqlx::query_file_as!(
View,
"sql/view/insert.sql",
@ -11,6 +11,6 @@ pub async fn insert_view(conn: &PgPool, view: View) -> Result<View, sqlx::Error>
view.trackable_id,
view.time_created
)
.fetch_one(conn)
.fetch_one(transaction)
.await
}

View File

@ -1 +1,12 @@
use actix_web_utils::extensions::typed_response::TypedHttpResponse;
use realtor_lp_types::dto::payloads::view::ViewForCreationPayload;
use sqlx::PgPool;
use crate::{dao, handle_tx, handle_db_write_op, success};
pub async fn new_view(conn: &PgPool, view: ViewForCreationPayload) -> TypedHttpResponse<()> {
let mut transaction = handle_tx!(conn.begin());
handle_db_write_op!(dao::view::insert_view(&mut transaction, view.into()), transaction);
success!(())
}