dialtone_sqlx 0.1.0

Dialtone SQLx Back-End
Documentation
use crate::db::return_optional;
use crate::db::site_info::SITE_INFO_JSON_OBJECT;
use const_format::concatcp;
use dialtone_common::rest::sites::site_data::SiteInfo;
use sqlx::{Executor, Postgres};

pub async fn fetch_site(
    exec: impl Executor<'_, Database = Postgres>,
    host_name: &str,
) -> Result<Option<SiteInfo>, sqlx::Error> {
    let sql = concatcp!(
        "select ",
        SITE_INFO_JSON_OBJECT,
        r#"
            as "site_info: Json<SiteInfo>" from site_info where host_name = $1
        "#
    );
    let result = sqlx::query(sql)
        .bind(host_name)
        .fetch_optional(exec)
        .await?;
    return_optional(&result)
}