dialtone_axum 0.1.0

Dialtone Axum Back-end
Documentation
use crate::response::response_error::ResponseError;
use crate::{err_bad_request, err_not_found, ok_success};
use axum::extract::{Extension, Query};
use axum::response::IntoResponse;
use dialtone_common::rest::users::user_login::NameHostPair;
use dialtone_sqlx::control::user::check_name_availability::check_user_name_availability;
use sqlx::{Pool, Postgres};

pub async fn get_name(
    Query(name_check): Query<NameHostPair>,
    Extension(pool): Extension<Pool<Postgres>>,
) -> Result<impl IntoResponse, ResponseError> {
    if name_check.user_name.len() > 2 {
        let name_available =
            check_user_name_availability(&pool, &name_check.user_name, &name_check.host_name)
                .await?;
        if name_available {
            ok_success!()
        } else {
            err_not_found!()
        }
    } else {
        err_bad_request!()
    }
}