diff options
| author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-03-19 02:42:02 +0100 |
|---|---|---|
| committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2026-03-19 02:42:02 +0100 |
| commit | 6df299c87ba8faab75626d04392f874ec642c8dc (patch) | |
| tree | 64744ae2dea2c726d72589ce290e88679e60c564 /crates/rocie-server/src/storage/sql/get/config | |
| parent | chore(rocie-client): Re-generate the client api (diff) | |
| download | server-6df299c87ba8faab75626d04392f874ec642c8dc.zip | |
feat(rocie-server): Provide default units (and other changes)
Diffstat (limited to 'crates/rocie-server/src/storage/sql/get/config')
| -rw-r--r-- | crates/rocie-server/src/storage/sql/get/config/mod.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/crates/rocie-server/src/storage/sql/get/config/mod.rs b/crates/rocie-server/src/storage/sql/get/config/mod.rs new file mode 100644 index 0000000..eb8be86 --- /dev/null +++ b/crates/rocie-server/src/storage/sql/get/config/mod.rs @@ -0,0 +1,41 @@ +use crate::{app::App, storage::sql::config::Config}; + +use sqlx::query; + +impl Config { + pub(crate) async fn get(app: &App) -> Result<Self, get::Error> { + let record = query!( + " + SELECT use_defaults + FROM config + WHERE id = 0 +" + ) + .fetch_one(&app.db) + .await?; + + let should_use_defaults = if record.use_defaults == 1 { + true + } else if record.use_defaults == 0 { + false + } else { + unreachable!("Should not be possible, sqlite's CHECK prevents it") + }; + + Ok(Self { + should_use_defaults, + }) + } +} + +pub(crate) mod get { + use actix_web::ResponseError; + + #[derive(thiserror::Error, Debug)] + pub(crate) enum Error { + #[error("Failed to execute the sql query")] + SqlError(#[from] sqlx::Error), + } + + impl ResponseError for Error {} +} |
