Overhaul
This commit is contained in:
@@ -1,10 +1,9 @@
|
||||
use crate::db;
|
||||
use crate::{account::hash, error::ApiResult};
|
||||
use chrono::{DateTime, Utc};
|
||||
use serde::{Deserialize, Serialize};
|
||||
#[allow(unused_imports)] // Import is used in schema examples
|
||||
use serde_json::json;
|
||||
use sqlx::{Postgres, QueryBuilder};
|
||||
use sqlx::{Pool, Postgres, QueryBuilder};
|
||||
use utoipa::ToSchema;
|
||||
|
||||
pub const ADMIN_ROLE: &str = "ADMIN";
|
||||
@@ -107,9 +106,7 @@ pub struct UpdateUser {
|
||||
}
|
||||
|
||||
impl UpdateUser {
|
||||
pub async fn update(&self, username: &str) -> ApiResult<User> {
|
||||
let pool = db::pool();
|
||||
|
||||
pub async fn update(&self, pool: &Pool<Postgres>, username: &str) -> ApiResult<User> {
|
||||
let mut query_builder: QueryBuilder<Postgres> =
|
||||
QueryBuilder::new(&format!("UPDATE {} SET ", TABLE_NAME));
|
||||
|
||||
@@ -189,8 +186,7 @@ pub struct User {
|
||||
}
|
||||
|
||||
impl User {
|
||||
pub async fn select(username: &str) -> Option<Self> {
|
||||
let pool = db::pool();
|
||||
pub async fn select(pool: &Pool<Postgres>, username: &str) -> Option<Self> {
|
||||
let user: Option<Self> = sqlx::query_as::<_, Self>(&format!(
|
||||
r#"
|
||||
SELECT * FROM {} WHERE username = $1
|
||||
@@ -208,8 +204,7 @@ impl User {
|
||||
user
|
||||
}
|
||||
|
||||
pub async fn select_by_email(email: &str) -> Option<Self> {
|
||||
let pool = db::pool();
|
||||
pub async fn select_by_email(pool: &Pool<Postgres>, email: &str) -> Option<Self> {
|
||||
let user: Option<Self> = sqlx::query_as::<_, Self>(&format!(
|
||||
r#"
|
||||
SELECT * FROM {} WHERE email = $1
|
||||
@@ -228,9 +223,7 @@ impl User {
|
||||
}
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub async fn count() -> i64 {
|
||||
let pool = db::pool();
|
||||
|
||||
pub async fn count(pool: &Pool<Postgres>) -> i64 {
|
||||
sqlx::query_scalar(&format!(
|
||||
r#"
|
||||
SELECT COUNT(*) FROM {}
|
||||
@@ -242,8 +235,7 @@ impl User {
|
||||
.unwrap_or_else(|_| 0)
|
||||
}
|
||||
|
||||
pub async fn insert(&self) -> ApiResult<User> {
|
||||
let pool = db::pool();
|
||||
pub async fn insert(&self, pool: &Pool<Postgres>) -> ApiResult<User> {
|
||||
let user: User = sqlx::query_as::<_, Self>(&format!(
|
||||
r#"
|
||||
INSERT INTO {} (
|
||||
|
||||
Reference in New Issue
Block a user