1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
///! Describes the schema of the JSON API
use feattle_core::last_reload::LastReload;
use feattle_core::persist::ValueHistory;
use feattle_core::FeattleDefinition;
use serde::{Deserialize, Serialize};
use serde_json::Value;

/// The first version of the API. This is still unstable while this crate is in `0.x`
pub mod v1 {
    use super::*;

    #[derive(Debug, Clone, Serialize)]
    pub struct ListFeattlesResponse {
        pub definitions: Vec<FeattleDefinition>,
        pub last_reload: LastReload,
        pub reload_failed: bool,
    }

    #[derive(Debug, Clone, Serialize)]
    pub struct ShowFeattleResponse {
        pub definition: FeattleDefinition,
        pub history: ValueHistory,
        pub last_reload: LastReload,
        pub reload_failed: bool,
    }

    #[derive(Debug, Clone, Deserialize)]
    pub struct EditFeattleRequest {
        pub value: Value,
        pub modified_by: String,
    }

    #[derive(Debug, Clone, Serialize)]
    pub struct EditFeattleResponse {}
}