cala-server 0.13.15

Server to sync other cala deployments
Documentation
mod config;
mod error;

use job::Jobs;
use sqlx::PgPool;

use cala_ledger::CalaLedger;

pub use config::*;
pub use error::*;

pub struct CalaApp {
    _pool: PgPool,
    ledger: CalaLedger,
    _jobs: job::Jobs,
}

impl CalaApp {
    pub(crate) async fn run(
        pool: PgPool,
        config: AppConfig,
        ledger: CalaLedger,
    ) -> Result<Self, ApplicationError> {
        let mut jobs = Jobs::init(
            job::JobSvcConfig::builder()
                .pool(pool.clone())
                .poller_config(config.jobs)
                .clock(ledger.clock().clone())
                .build()
                .expect("JobSvcConfig"),
        )
        .await?;
        jobs.start_poll().await?;

        Ok(Self {
            _pool: pool,
            ledger,
            _jobs: jobs,
        })
    }

    pub fn ledger(&self) -> &CalaLedger {
        &self.ledger
    }
}