fix: add serde rename_all to all enums for correct JSON serialization
Some checks failed
CI Pipeline / Rust Format Check (push) Failing after 3s
CI Pipeline / Clippy Lints (push) Successful in 45s
CI Pipeline / Rust Unit Tests (push) Successful in 1m1s
CI Pipeline / Security Audit (push) Successful in 4s
CI Pipeline / Frontend Lint & Type Check (push) Successful in 12s
CI Pipeline / Build .deb & Release (push) Has been skipped
Some checks failed
CI Pipeline / Rust Format Check (push) Failing after 3s
CI Pipeline / Clippy Lints (push) Successful in 45s
CI Pipeline / Rust Unit Tests (push) Successful in 1m1s
CI Pipeline / Security Audit (push) Successful in 4s
CI Pipeline / Frontend Lint & Type Check (push) Successful in 12s
CI Pipeline / Build .deb & Release (push) Has been skipped
All 6 enums in pm-core/src/models.rs had #[sqlx(rename_all)] for database mapping but were missing #[serde(rename_all)] for JSON. Backend expected PascalCase (Once, Daily, etc.) but frontend sent lowercase (once, daily, etc.), causing deserialization errors like: "unknown variant once, expected Once, Daily, Weekly, Monthly" Fixed enums: - HostHealthStatus: serde(rename_all = "lowercase") - UserRole: serde(rename_all = "lowercase") - AuthProvider: serde(rename_all = "snake_case") - JobStatus: serde(rename_all = "lowercase") - JobKind: serde(rename_all = "snake_case") - WindowRecurrence: serde(rename_all = "lowercase") Frontend types already matched - no frontend changes needed.
This commit is contained in:
@ -12,6 +12,7 @@ use uuid::Uuid;
|
||||
// ============================================================
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
#[sqlx(type_name = "host_health_status", rename_all = "lowercase")]
|
||||
pub enum HostHealthStatus {
|
||||
Pending,
|
||||
@ -32,6 +33,7 @@ impl std::fmt::Display for HostHealthStatus {
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
#[sqlx(type_name = "user_role", rename_all = "lowercase")]
|
||||
pub enum UserRole {
|
||||
Admin,
|
||||
@ -48,6 +50,7 @@ impl std::fmt::Display for UserRole {
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[sqlx(type_name = "auth_provider", rename_all = "snake_case")]
|
||||
pub enum AuthProvider {
|
||||
Local,
|
||||
@ -216,6 +219,7 @@ pub struct RegisterDiscoveredRequest {
|
||||
// ============================================================
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
#[sqlx(type_name = "job_status", rename_all = "lowercase")]
|
||||
pub enum JobStatus {
|
||||
Queued,
|
||||
@ -240,6 +244,7 @@ impl std::fmt::Display for JobStatus {
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
#[sqlx(type_name = "job_kind", rename_all = "snake_case")]
|
||||
pub enum JobKind {
|
||||
#[sqlx(rename = "patch_apply")]
|
||||
@ -324,6 +329,7 @@ pub struct PatchJobSummary {
|
||||
/// Recurrence type for a maintenance window.
|
||||
/// Mirrors the `window_recurrence` PostgreSQL ENUM.
|
||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
#[sqlx(type_name = "window_recurrence", rename_all = "lowercase")]
|
||||
pub enum WindowRecurrence {
|
||||
/// Single one-time window (at `start_at` for `duration_minutes` minutes).
|
||||
|
||||
Reference in New Issue
Block a user