dialtone_axum 0.1.0

Dialtone Axum Back-end
Documentation
use axum::{
    extract::{Extension, Query},
    response::IntoResponse,
    Json,
};
use dialtone_common::rest::actors::actor_exchanges::GetActorRequest;
use dialtone_sqlx::db::actor::fetch_public::fetch_public_actor_by_id;
use sqlx::{Pool, Postgres};

use crate::{err_not_found, response::response_error::ResponseError};

pub async fn get_public_actor_handler(
    Query(params): Query<GetActorRequest>,
    Extension(pool): Extension<Pool<Postgres>>,
) -> Result<impl IntoResponse, ResponseError> {
    let actor = fetch_public_actor_by_id(&pool, &params.actor_id).await?;
    match actor {
        None => err_not_found!(),
        Some(_) => Ok(Json(actor)),
    }
}