summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs105
1 files changed, 57 insertions, 48 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 900b4dc..d96556a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -10,6 +10,9 @@ use sqlx::SqlitePool;
mod auth;
+use crate::notifications::{NtfySettingsInput, SmtpSettingsInput};
+use crate::weather_thresholds::WeatherThresholdUpdateInput;
+
fn error_response(status: StatusCode, message: &str) -> axum::response::Response {
(status, Json(json!({"error": message}))).into_response()
}
@@ -265,15 +268,15 @@ mod thresholds_api {
Json(payload): Json<UpdateThreshold>,
) -> Result<Json<WeatherThreshold>, String> {
let repo = WeatherThresholdRepository { db: &pool };
- repo.update_threshold(
+ repo.update_threshold(WeatherThresholdUpdateInput {
id,
- payload.user_id,
- payload.condition_type,
- payload.threshold_value,
- payload.operator,
- payload.enabled,
- payload.description,
- )
+ user_id: payload.user_id,
+ condition_type: payload.condition_type,
+ threshold_value: payload.threshold_value,
+ operator: payload.operator,
+ enabled: payload.enabled,
+ description: payload.description,
+ })
.await
.map(Json)
.map_err(|e| e.to_string())
@@ -342,15 +345,15 @@ mod notifications_api {
Json(payload): Json<CreateNtfy>,
) -> Result<Json<NtfySettings>, String> {
let repo = NtfySettingsRepository { db: &pool };
- repo.create(
- payload.user_id,
- payload.enabled,
- payload.topic,
- payload.server_url,
- payload.priority,
- payload.title_template,
- payload.message_template,
- )
+ repo.create(NtfySettingsInput {
+ user_id: payload.user_id,
+ enabled: payload.enabled,
+ topic: payload.topic,
+ server_url: payload.server_url,
+ priority: payload.priority,
+ title_template: payload.title_template,
+ message_template: payload.message_template,
+ })
.await
.map(Json)
.map_err(|e| e.to_string())
@@ -364,12 +367,15 @@ mod notifications_api {
let repo = NtfySettingsRepository { db: &pool };
repo.update(
id,
- payload.enabled,
- payload.topic,
- payload.server_url,
- payload.priority,
- payload.title_template,
- payload.message_template,
+ NtfySettingsInput {
+ user_id: 0, // user_id is not updated here, but struct requires it
+ enabled: payload.enabled,
+ topic: payload.topic,
+ server_url: payload.server_url,
+ priority: payload.priority,
+ title_template: payload.title_template,
+ message_template: payload.message_template,
+ },
)
.await
.map(Json)
@@ -432,20 +438,20 @@ mod notifications_api {
Json(payload): Json<CreateSmtp>,
) -> Result<Json<SmtpSettings>, String> {
let repo = SmtpSettingsRepository { db: &pool };
- repo.create(
- payload.user_id,
- payload.enabled,
- payload.email,
- payload.smtp_server,
- payload.smtp_port,
- payload.username,
- payload.password,
- payload.use_tls,
- payload.from_email,
- payload.from_name,
- payload.subject_template,
- payload.body_template,
- )
+ repo.create(SmtpSettingsInput {
+ user_id: payload.user_id,
+ enabled: payload.enabled,
+ email: payload.email,
+ smtp_server: payload.smtp_server,
+ smtp_port: payload.smtp_port,
+ username: payload.username,
+ password: payload.password,
+ use_tls: payload.use_tls,
+ from_email: payload.from_email,
+ from_name: payload.from_name,
+ subject_template: payload.subject_template,
+ body_template: payload.body_template,
+ })
.await
.map(Json)
.map_err(|e| e.to_string())
@@ -459,17 +465,20 @@ mod notifications_api {
let repo = SmtpSettingsRepository { db: &pool };
repo.update(
id,
- payload.enabled,
- payload.email,
- payload.smtp_server,
- payload.smtp_port,
- payload.username,
- payload.password,
- payload.use_tls,
- payload.from_email,
- payload.from_name,
- payload.subject_template,
- payload.body_template,
+ SmtpSettingsInput {
+ user_id: 0, // user_id is not updated here, but struct requires it
+ enabled: payload.enabled,
+ email: payload.email,
+ smtp_server: payload.smtp_server,
+ smtp_port: payload.smtp_port,
+ username: payload.username,
+ password: payload.password,
+ use_tls: payload.use_tls,
+ from_email: payload.from_email,
+ from_name: payload.from_name,
+ subject_template: payload.subject_template,
+ body_template: payload.body_template,
+ },
)
.await
.map(Json)