• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

getdozer / dozer / 4062405381

pending completion
4062405381

Pull #776

github

GitHub
Merge c50dcefa1 into a81d03c98
Pull Request #776: fix: `ApiEndpoint` is not serializing all fields

5 of 5 new or added lines in 1 file covered. (100.0%)

24316 of 37369 relevant lines covered (65.07%)

35801.41 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

10.53
/dozer-types/src/models/api_endpoint.rs
1
use crate::models::source::Source;
2
use serde::ser::SerializeStruct;
3
use serde::{Deserialize, Serialize};
×
4

5
#[derive(Serialize, Deserialize, Eq, PartialEq, Clone, ::prost::Message)]
125✔
6
pub struct ApiIndex {
7
    #[prost(string, repeated, tag = "1")]
8
    pub primary_key: Vec<String>,
9
}
×
10

11
#[derive(Deserialize, Eq, PartialEq, Clone, ::prost::Message)]
105✔
12
pub struct ApiEndpoint {
13
    #[prost(string, optional, tag = "1")]
14
    #[serde(skip_serializing_if = "Option::is_none")]
15
    pub id: Option<String>,
16
    #[prost(string, optional, tag = "2")]
17
    #[serde(skip_serializing_if = "Option::is_none")]
18
    pub app_id: Option<String>,
19
    #[prost(string, tag = "3")]
20
    pub name: String,
21
    #[prost(string, tag = "4")]
22
    /// path of endpoint - e.g: /stocks
23
    pub path: String,
24
    #[prost(string, optional, tag = "5")]
25
    pub sql: Option<String>,
26
    #[prost(message, tag = "6")]
27
    pub index: Option<ApiIndex>,
28
    #[prost(message, tag = "7")]
29
    #[serde(skip_deserializing)]
30
    /// reference to pre-defined source name - syntax: `!Ref <source_name>`; Type: `Ref!` tag
31
    pub source: Option<Source>,
32
}
33

34
impl Serialize for ApiEndpoint {
35
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
×
36
    where
×
37
        S: serde::Serializer,
×
38
    {
×
39
        let mut state = serializer.serialize_struct("ApiEndpoint", 3)?;
×
40
        state.serialize_field("name", &self.name)?;
×
41
        state.serialize_field("path", &self.path)?;
×
42
        state.serialize_field("sql", &self.sql)?;
×
43
        state.serialize_field("index", &self.index)?;
×
44
        if let Some(source) = &self.source {
×
45
            state.serialize_field("source", &Value::Ref(source.name.clone()))?;
×
46
        }
×
47
        state.end()
×
48
    }
×
49
}
50
#[derive(Debug, Serialize, Deserialize, Eq, PartialEq, Clone)]
×
51
pub enum Value {
52
    Ref(String),
53
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc