From 39ee2ad22188e944e26bd83ead5d0424757e55c1 Mon Sep 17 00:00:00 2001 From: realaravinth Date: Wed, 11 May 2022 20:02:03 +0530 Subject: [PATCH] feat: migrate update username to use db_* interface --- sqlx-data.json | 40 +++++++++++++++++++++++----------- src/api/v1/account/password.rs | 1 - src/api/v1/account/username.rs | 22 +++---------------- 3 files changed, 30 insertions(+), 33 deletions(-) diff --git a/sqlx-data.json b/sqlx-data.json index b7402967..69264e3c 100644 --- a/sqlx-data.json +++ b/sqlx-data.json @@ -39,19 +39,6 @@ }, "query": "SELECT email, secret FROM mcaptcha_users WHERE name = ($1)" }, - "2021bc0eb03df51af06b59e2a1efdba231e8f35d9cfb5c5b55241c566b9055ce": { - "describe": { - "columns": [], - "nullable": [], - "parameters": { - "Left": [ - "Varchar", - "Text" - ] - } - }, - "query": "UPDATE mcaptcha_users set name = $1\n WHERE name = $2" - }, "238569a64d7dbd252e3b27204f207e8a8548109717b89495ddf8f9a870c7c75d": { "describe": { "columns": [], @@ -169,6 +156,21 @@ }, "query": "SELECT time FROM mcaptcha_pow_confirmed_stats \n WHERE \n config_id = (\n SELECT config_id FROM mcaptcha_config \n WHERE \n key = $1\n AND\n user_id = (\n SELECT \n ID FROM mcaptcha_users WHERE name = $2))\n ORDER BY time DESC" }, + "45d9e9fb6344fe3a18c2529d50c935d3837bfe25c96595beb6970d6067720578": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Left": [ + "Varchar", + "Text", + "Varchar", + "Varchar" + ] + } + }, + "query": "insert into mcaptcha_users \n (name , password, email, secret) values ($1, $2, $3, $4)" + }, "4a5dfbc5aeb2bab290a09640cc25223d484fbc7549e5bc54f33bab8616725031": { "describe": { "columns": [ @@ -561,6 +563,18 @@ }, "query": "SELECT time FROM mcaptcha_pow_fetched_stats\n WHERE \n config_id = (\n SELECT \n config_id FROM mcaptcha_config \n WHERE \n key = $1\n AND\n user_id = (\n SELECT \n ID FROM mcaptcha_users WHERE name = $2))\n ORDER BY time DESC" }, + "ca9d5241f1234d1825f7ead391ebe9099fca776e7101ac6e1761881606def5fa": { + "describe": { + "columns": [], + "nullable": [], + "parameters": { + "Left": [ + "Text" + ] + } + }, + "query": "DELETE FROM mcaptcha_users WHERE name = ($1)" + }, "d85750d86bbafeaf6f52cec3d49d708bef1a9ef85bbd9c55d63c9c27cb93223c": { "describe": { "columns": [], diff --git a/src/api/v1/account/password.rs b/src/api/v1/account/password.rs index 14422b7e..9eb7170e 100644 --- a/src/api/v1/account/password.rs +++ b/src/api/v1/account/password.rs @@ -19,7 +19,6 @@ use actix_web::{web, HttpResponse, Responder}; use argon2_creds::Config; use db_core::Login; use serde::{Deserialize, Serialize}; -use sqlx::Error::RowNotFound; use crate::api::v1::auth::runners::Password; use crate::errors::*; diff --git a/src/api/v1/account/username.rs b/src/api/v1/account/username.rs index 5ea5eceb..d3ca7f4d 100644 --- a/src/api/v1/account/username.rs +++ b/src/api/v1/account/username.rs @@ -65,26 +65,10 @@ async fn set_username( let processed_uname = data.creds.username(&payload.username)?; - let res = sqlx::query!( - "UPDATE mcaptcha_users set name = $1 - WHERE name = $2", - &processed_uname, - &username, - ) - .execute(&data.db) - .await; + data.dblib + .update_username(&username, &processed_uname) + .await?; - if res.is_err() { - if let Err(sqlx::Error::Database(err)) = res { - if err.code() == Some(Cow::from("23505")) - && err.message().contains("mcaptcha_users_name_key") - { - return Err(ServiceError::UsernameTaken); - } else { - return Err(sqlx::Error::Database(err).into()); - } - }; - } id.forget(); id.remember(processed_uname);