hgame 0.26.4

CG production management structs, e.g. of assets, personnels, progress, etc.
Documentation
use super::*;
use hconf::ShotGridAuth;
use shotgrid_rs::Client;

pub async fn shotgrid_client(auth: ShotGridAuth) -> Result<Client, DatabaseError> {
    match Client::new(
        auth.url.to_string(),
        Some(&auth.script_name),
        Some(&auth.script_key),
    ) {
        Ok(client) => {
            // authenticates using the script name and script key held by the client.
            match client.authenticate_script().await {
                Ok(_session) => {
                    info!("Successfully authenticated ShotGrid");
                    Ok(client)
                }
                Err(e) => Err(DatabaseError::ShotGridAuthenticationError(e.to_string())),
            }
        }
        Err(e) => Err(DatabaseError::ShotGridClientError(e.to_string())),
    }
}

#[cfg(feature = "shotgrid_async_test")]
#[cfg(test)]
mod tests {
    // use super::*;
    // use mkutil::tokio;
    // #[tokio::test]
    // async fn shotgrid_connect() -> AnyResult<()> {
    //     ClientCfgCel::pkg_test(true);
    //     let settings = ClientCfgCel::settings().as_ref().unwrap();
    //     let auth = settings.shotgrid_auth_or_default("")?;
    //     let sg = Client::new(
    //         auth.url.to_string(),
    //         Some(&auth.script_name),
    //         Some(&auth.script_key),
    //     )?;
    //     eprintln!("ShotGrid Client: {:?}", sg);
    //     let _session = sg.authenticate_script().await?;

    //     Ok(())
    // }
}