diff options
Diffstat (limited to 'src/lib.rs')
| -rw-r--r-- | src/lib.rs | 105 |
1 files changed, 57 insertions, 48 deletions
@@ -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) |
