From 2b4d2fab25963712900dda4736432a64189fa876 Mon Sep 17 00:00:00 2001 From: rtkay123 Date: Sun, 29 Mar 2026 17:11:27 +0200 Subject: feat: delete transaction schema --- lib/api-config/src/schema/create.rs | 32 --------------------- lib/api-config/src/schema/mod.rs | 55 +++++++++++++++++++++++++++++++++++-- 2 files changed, 53 insertions(+), 34 deletions(-) (limited to 'lib/api-config/src') diff --git a/lib/api-config/src/schema/create.rs b/lib/api-config/src/schema/create.rs index de2d214..5c91f64 100644 --- a/lib/api-config/src/schema/create.rs +++ b/lib/api-config/src/schema/create.rs @@ -1,8 +1,4 @@ -use async_trait::async_trait; use serde::{Deserialize, Serialize}; -use warden_core::state::AppState; - -use crate::schema::{SchemaDriver, TransactionSchema}; #[derive(Deserialize, Serialize)] #[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))] @@ -17,31 +13,3 @@ pub struct CreateSchema { #[serde(rename = "json_schema")] pub schema: serde_json::Value, } - -#[async_trait] -impl SchemaDriver for AppState { - async fn create_schema( - &self, - name: impl AsRef + Send + Sync, - version: impl AsRef + Send + Sync, - schema: &serde_json::Value, - ) -> Result { - sqlx::query_as!( - TransactionSchema, - "insert into transaction_schema (type, version, json_schema) values ($1, $2, $3) - returning - type as kind, - version, - json_schema as schema, - created_at, - updated_at - ", - name.as_ref(), - version.as_ref(), - sqlx::types::Json(&schema) as _ - ) - .fetch_one(&self.database) - .await - .map_err(|e| e.into()) - } -} diff --git a/lib/api-config/src/schema/mod.rs b/lib/api-config/src/schema/mod.rs index 3893254..b058060 100644 --- a/lib/api-config/src/schema/mod.rs +++ b/lib/api-config/src/schema/mod.rs @@ -1,8 +1,10 @@ -pub mod create; +mod create; +pub use create::CreateSchema; use async_trait::async_trait; use serde::{Deserialize, Serialize}; use time::OffsetDateTime; +use warden_core::state::AppState; use crate::ConfigurationError; @@ -28,8 +30,57 @@ pub struct TransactionSchema { pub trait SchemaDriver { async fn create_schema( &self, - name: impl AsRef + Send + Sync, + kind: impl AsRef + Send + Sync, version: impl AsRef + Send + Sync, schema: &serde_json::Value, ) -> Result; + + async fn delete_schema( + &self, + kind: impl AsRef + Send + Sync, + version: impl AsRef + Send + Sync, + ) -> Result<(), ConfigurationError>; +} + +#[async_trait] +impl SchemaDriver for AppState { + async fn create_schema( + &self, + kind: impl AsRef + Send + Sync, + version: impl AsRef + Send + Sync, + schema: &serde_json::Value, + ) -> Result { + sqlx::query_as!( + TransactionSchema, + "insert into transaction_schema (type, version, json_schema) values ($1, $2, $3) + returning + type as kind, + version, + json_schema as schema, + created_at, + updated_at + ", + kind.as_ref(), + version.as_ref(), + sqlx::types::Json(&schema) as _ + ) + .fetch_one(&self.database) + .await + .map_err(|e| e.into()) + } + + async fn delete_schema( + &self, + kind: impl AsRef + Send + Sync, + version: impl AsRef + Send + Sync, + ) -> Result<(), crate::ConfigurationError> { + // sqlx::query!("delete * from transaction_schema where type = $1 and version $2", + // name.as_ref(), + // version.as_ref(), + // ) + // .execute(&self.database) + // .await + // .map_err(|e| e.into()) + Ok(()) + } } -- cgit v1.2.3