haste_health/commands/worker.rs
1use clap::Subcommand;
2// use haste_config::get_config;
3use haste_fhir_operation_error::OperationOutcomeError;
4use haste_worker::run_worker;
5// use haste_wal_worker::{WALWorkerEnvironmentVariables, wal_worker};
6
7#[derive(Subcommand, Debug)]
8pub enum WorkerCommands {
9 Worker,
10 WalWorker,
11}
12
13pub async fn worker(command: &Option<WorkerCommands>) -> Result<(), OperationOutcomeError> {
14 match command {
15 None | Some(WorkerCommands::Worker) => indexing_worker()
16 .await
17 .expect("Failed to run indexing worker"),
18 Some(WorkerCommands::WalWorker) => todo!(),
19 };
20
21 Ok(())
22}
23
24async fn indexing_worker() -> Result<(), OperationOutcomeError> {
25 run_worker().await
26}
27
28// async fn create_wal_worker() -> Result<(), Box<dyn std::error::Error>> {
29// let config = get_config::<WALWorkerEnvironmentVariables>("environment".into());
30
31// let connection_url = config
32// .get(WALWorkerEnvironmentVariables::DatabaseURL)
33// .expect(&format!(
34// "'{}' variable not set",
35// String::from(WALWorkerEnvironmentVariables::DatabaseURL)
36// ));
37
38// let slot_name = config
39// .get(WALWorkerEnvironmentVariables::PGSlotName)
40// .expect(&format!(
41// "'{}' variable not set",
42// String::from(WALWorkerEnvironmentVariables::PGSlotName)
43// ));
44// let publication_name = config
45// .get(WALWorkerEnvironmentVariables::PGPublicationName)
46// .expect(&format!(
47// "'{}' variable not set",
48// String::from(WALWorkerEnvironmentVariables::PGPublicationName)
49// ));
50
51// wal_worker(slot_name, publication_name, &connection_url).await;
52
53// Ok(())
54// }