dialtone_test_util 0.1.0

Dialtone Testing Utilities
Documentation
use dialtone_common::rest::sites::site_data::{PublicSiteInfo, RegistrationMethod, SiteData};
use dialtone_sqlx::db::site_info::create_site;
use dialtone_sqlx::db::site_info::fetch_site;
use dialtone_sqlx::db::site_info::update::update_site;
use sqlx::Pool;

pub async fn create_site_tst_utl(pool: &Pool<sqlx::Postgres>, host_name: &str) {
    create_site(
        pool,
        host_name,
        "test".to_string(),
        Some("testy sites".to_string()),
        None,
    )
    .await
    .unwrap();
}

pub async fn open_registration(pool: &Pool<sqlx::Postgres>, host_name: &str) {
    let site_info = fetch_site(pool, host_name).await.unwrap().unwrap();
    let registration_methods = vec![RegistrationMethod::OpenRegistration];
    let new_site_data = SiteData {
        public: PublicSiteInfo {
            registration_methods,
            ..site_info.site_data.public
        },
        ..site_info.site_data
    };
    update_site(pool, host_name, new_site_data).await.unwrap();
}

pub async fn simple_code_registration(pool: &Pool<sqlx::Postgres>, host_name: &str, code: String) {
    let site_info = fetch_site(pool, host_name).await.unwrap().unwrap();
    let registration_methods = vec![RegistrationMethod::SimpleCode];
    let new_site_data = SiteData {
        public: PublicSiteInfo {
            registration_methods,
            ..site_info.site_data.public
        },
        simple_code_for_registration: Some(code),
        ..site_info.site_data
    };
    update_site(pool, host_name, new_site_data).await.unwrap();
}