From c29645140115eedc8ddbb5c577bc7acc319022d0 Mon Sep 17 00:00:00 2001 From: Aravinth Manivannan Date: Fri, 10 Jan 2025 18:55:48 +0530 Subject: [PATCH] feat: codegen script to geenrate type aliases in adapters --- utils/adapter_type_gen.sh | 59 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 utils/adapter_type_gen.sh diff --git a/utils/adapter_type_gen.sh b/utils/adapter_type_gen.sh new file mode 100755 index 0000000..06c946b --- /dev/null +++ b/utils/adapter_type_gen.sh @@ -0,0 +1,59 @@ +#!/bin/bash + +help() { + echo "Usage: adapter_type_gen.sh + + " +} + + + run() { + echo " + +pub type $1$2CqrsExec = Arc>; +pub type $1$2CqrsView = Arc>; +pub type Web$1$2CqrsView = Data<$1$2CqrsView>; + +// struct + +${2,,}: $1$2CqrsExec, + +// trait impl + +self.${2,,}.execute(aggregate_id, command.clone()).await?; + + +// $2_view.rs DB stuff + +use crate::${1,,}::adapters::types::{$1$2CqrsExec, $1$2CqrsView}; +use crate::${1,,}::application::services::$1ServicesObj; + +pub fn init_cqrs( + db: $1DBPostgresAdapter, + services: $1ServicesObj, +) -> ($1$2CqrsExec, $1$2CqrsView) { + let queries: Vec>> = vec![Box::new(db.clone())]; + + let pool = db.pool.clone(); + + ( + std::sync::Arc::new(postgres_es::postgres_cqrs(pool.clone(), queries, services)), + std::sync::Arc::new(db.clone()), + ) +} +" + +} + + + +if [ -z $1 ] +then + help +elif [ -z $2 ] +then + help +else + run $1 $2 $3 $4 | wl-copy + run $1 $2 $3 $4 +fi