From 6760517c70537bb27e18c0079735d117b06629fe Mon Sep 17 00:00:00 2001 From: neil Date: Tue, 3 Nov 2020 17:02:03 +0100 Subject: [PATCH] now using database pool for db. Fixes #21 --- src/database/methods.rs | 12 ++++++------ src/forward.rs | 16 ++++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/database/methods.rs b/src/database/methods.rs index 3032735..5b932bb 100644 --- a/src/database/methods.rs +++ b/src/database/methods.rs @@ -9,12 +9,12 @@ use crate::DbConn; #[table_name = "form"] #[derive(Serialize, Insertable)] -pub struct InsertableForm<'b> { +pub struct InsertableForm { pub created_at: NaiveDateTime, pub lastvisit_at: NaiveDateTime, - pub token: &'b str, - pub nc_username: &'b str, - pub nc_password: &'b str, + pub token: String, + pub nc_username: String, + pub nc_password: String, } impl Form { @@ -45,9 +45,9 @@ impl Form { } pub fn insert<'b>( - i_form: InsertableForm<'b>, + i_form: InsertableForm, conn: &DbConn, - ) -> Result, diesel::result::Error> { + ) -> Result { match diesel::insert_into(form).values(&i_form).execute(conn) { Ok(_) => Ok(i_form), Err(e) => Err(e), diff --git a/src/forward.rs b/src/forward.rs index 8a53a28..0c2ff6d 100644 --- a/src/forward.rs +++ b/src/forward.rs @@ -156,7 +156,8 @@ pub async fn forward_login( })?; // check if the link exists in DB. if it does, update lastvisit_at. - let formdata = Form::get_from_token(¶ms.token, &conn) + let formdata = web::block(move || Form::get_from_token(¶ms.token, &conn)) + .await .map_err(|e| { eprintln!("error_forwardlogin_db_get (diesel error): {}", e); crash(get_lang(&req), "error_forwardlogin_db_get") @@ -237,17 +238,20 @@ pub async fn forward_register( let token = gen_token(45); + let token_mv = token.clone(); + // store the result in DB - let form_result = Form::insert( + let form_result = web::block(move || Form::insert( InsertableForm { created_at: Utc::now().naive_utc(), lastvisit_at: Utc::now().naive_utc(), - token: &token, - nc_username: &nc_username, - nc_password: &nc_password, + token: token_mv, + nc_username, + nc_password, }, &conn, - ); + )) + .await; if form_result.is_err() { return Err(crash(lang, "error_forwardregister_db"));