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!()
}
}