Newer
Older
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
use rocket::serde::{uuid::Uuid, Serialize};
use schemars::JsonSchema;
use std::collections::HashMap;
use uuid::Uuid;
use crate::Error;
#[derive(Serialize, JsonSchema)]
#[serde(crate = "rocket::serde")]
pub struct ConfigNode {
pub software: String,
pub version: String,
pub jobs: HashMap<String, Uuid>
}
impl ConfigNode {
pub fn new(software: String, version: String) -> ConfigNode {
ConfigNode {
software,
version,
jobs: HashMap<String, Uuid>::new()
}
}
}
#[derive(Serialize, JsonSchema)]
#[serde(crate = "rocket::serde")]
pub struct Configs {
pub softwares: Vec<ConfigNode>
}
impl Configs {
pub fn new() -> Configs {
Configs {
softwares: Vec<ConfigNode>::new()
}
}
}
#[derive(Serialize, JsonSchema)]
#[serde(crate = "rocket::serde")]
pub struct JobConfCommandParam {
pub name: String,
pub value_type: String,
pub default_value: Option<String>,
pub comment: Option<String>,
pub required: bool,
pub named: bool,
pub parameter_name: Option<String>
}
impl TryFrom<adapters::constants::JobConfCommandParam> for JobConfCommandParam {
type Error = Error;
fn try_from(value: adapters::constants::JobConfCommandParam) -> Result<Self, Self::Error> {
Ok(Self {
name: value.name,
value_type: value.value_type.to_string(),
default_value: value.default_value,
comment: value.comment,
required: value.required,
named: value.named,
parameter_name: value.parameter_name
})
}
}
#[derive(Serialize, JsonSchema)]
#[serde(crate = "rocket::serde")]
pub struct JobConfCommand {
#[serde(skip, default = "get_uuid")]
pub uuid: Uuid,
pub bin: String,
pub parameters: Vec<JobConfCommandParam>
}
impl TryFrom<adapters::constants::JobConfCommand> for JobConfCommand {
type Error = Error;
fn try_from(value: adapters::constants::JobConfCommand) -> Result<Self, Self::Error> {
let mut converted_parameters = Vec<JobConfCommandParam>::new();
for param in value.parameters {
converted_parameters.push(JobConfCommandParam::from(param))
}
Ok(Self {
uuid: value.uuid,
bin: bin.uuid,
parameters: converted_parameters
})
}
}