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)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||||
|
#[serde(rename_all = "lowercase")]
|
||||||
#[sqlx(type_name = "host_health_status", rename_all = "lowercase")]
|
#[sqlx(type_name = "host_health_status", rename_all = "lowercase")]
|
||||||
pub enum HostHealthStatus {
|
pub enum HostHealthStatus {
|
||||||
Pending,
|
Pending,
|
||||||
@ -32,6 +33,7 @@ impl std::fmt::Display for HostHealthStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||||
|
#[serde(rename_all = "lowercase")]
|
||||||
#[sqlx(type_name = "user_role", rename_all = "lowercase")]
|
#[sqlx(type_name = "user_role", rename_all = "lowercase")]
|
||||||
pub enum UserRole {
|
pub enum UserRole {
|
||||||
Admin,
|
Admin,
|
||||||
@ -48,6 +50,7 @@ impl std::fmt::Display for UserRole {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
#[sqlx(type_name = "auth_provider", rename_all = "snake_case")]
|
#[sqlx(type_name = "auth_provider", rename_all = "snake_case")]
|
||||||
pub enum AuthProvider {
|
pub enum AuthProvider {
|
||||||
Local,
|
Local,
|
||||||
@ -216,6 +219,7 @@ pub struct RegisterDiscoveredRequest {
|
|||||||
// ============================================================
|
// ============================================================
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||||
|
#[serde(rename_all = "lowercase")]
|
||||||
#[sqlx(type_name = "job_status", rename_all = "lowercase")]
|
#[sqlx(type_name = "job_status", rename_all = "lowercase")]
|
||||||
pub enum JobStatus {
|
pub enum JobStatus {
|
||||||
Queued,
|
Queued,
|
||||||
@ -240,6 +244,7 @@ impl std::fmt::Display for JobStatus {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||||
|
#[serde(rename_all = "snake_case")]
|
||||||
#[sqlx(type_name = "job_kind", rename_all = "snake_case")]
|
#[sqlx(type_name = "job_kind", rename_all = "snake_case")]
|
||||||
pub enum JobKind {
|
pub enum JobKind {
|
||||||
#[sqlx(rename = "patch_apply")]
|
#[sqlx(rename = "patch_apply")]
|
||||||
@ -324,6 +329,7 @@ pub struct PatchJobSummary {
|
|||||||
/// Recurrence type for a maintenance window.
|
/// Recurrence type for a maintenance window.
|
||||||
/// Mirrors the `window_recurrence` PostgreSQL ENUM.
|
/// Mirrors the `window_recurrence` PostgreSQL ENUM.
|
||||||
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, sqlx::Type)]
|
||||||
|
#[serde(rename_all = "lowercase")]
|
||||||
#[sqlx(type_name = "window_recurrence", rename_all = "lowercase")]
|
#[sqlx(type_name = "window_recurrence", rename_all = "lowercase")]
|
||||||
pub enum WindowRecurrence {
|
pub enum WindowRecurrence {
|
||||||
/// Single one-time window (at `start_at` for `duration_minutes` minutes).
|
/// Single one-time window (at `start_at` for `duration_minutes` minutes).
|
||||||
|
|||||||
Reference in New Issue
Block a user