From a5eafc49f50fc91105334d15cd8f97929c969453 Mon Sep 17 00:00:00 2001
From: Philippe Loctaux
Date: Sun, 5 Mar 2023 15:13:23 +0100
Subject: [PATCH] settings: split in multiple modules
---
crates/settings/src/database.rs | 51 ++++++++++++++++++++++++++
crates/settings/src/error.rs | 8 ++++
crates/settings/src/lib.rs | 65 ++++-----------------------------
3 files changed, 66 insertions(+), 58 deletions(-)
create mode 100644 crates/settings/src/database.rs
create mode 100644 crates/settings/src/error.rs
diff --git a/crates/settings/src/database.rs b/crates/settings/src/database.rs
new file mode 100644
index 0000000..f6afda6
--- /dev/null
+++ b/crates/settings/src/database.rs
@@ -0,0 +1,51 @@
+use crate::error::Error;
+use crate::Settings;
+use database::sqlx::SqliteExecutor;
+use database::Settings as DatabaseSettings;
+
+const DEFAULT_BUSINESS_NAME: &str = "ezidam";
+pub const DEFAULT_BUSINESS_LOGO: &[u8] = include_bytes!("../../../logo/ezidam.png");
+
+impl From for Settings {
+ fn from(db: DatabaseSettings) -> Self {
+ Self {
+ created_at: db.created_at,
+ updated_at: db.updated_at,
+ business_name: db
+ .business_name
+ .unwrap_or_else(|| DEFAULT_BUSINESS_NAME.into()),
+ business_logo: db
+ .business_logo
+ .unwrap_or_else(|| DEFAULT_BUSINESS_LOGO.to_vec()),
+ }
+ }
+}
+
+impl Settings {
+ pub async fn init(conn: impl SqliteExecutor<'_>) -> Result