dataflow_rs/engine/functions/
integration.rs1use datalogic_rs::Logic;
2use serde::Deserialize;
3use serde_json::Value;
4use std::collections::HashMap;
5use std::sync::Arc;
6
7#[derive(Debug, Clone, Deserialize)]
12pub struct HttpCallConfig {
13 pub connector: String,
15
16 #[serde(default = "default_method")]
18 pub method: HttpMethod,
19
20 #[serde(default)]
22 pub path: Option<String>,
23
24 #[serde(default)]
26 pub path_logic: Option<Value>,
27
28 #[serde(skip)]
30 pub compiled_path_logic: Option<Arc<Logic>>,
31
32 #[serde(default)]
34 pub headers: HashMap<String, String>,
35
36 #[serde(default)]
38 pub body: Option<Value>,
39
40 #[serde(default)]
42 pub body_logic: Option<Value>,
43
44 #[serde(skip)]
46 pub compiled_body_logic: Option<Arc<Logic>>,
47
48 #[serde(default)]
50 pub response_path: Option<String>,
51
52 #[serde(default = "default_timeout")]
54 pub timeout_ms: u64,
55}
56
57#[derive(Debug, Clone, Default, Deserialize)]
59#[serde(rename_all = "UPPERCASE")]
60pub enum HttpMethod {
61 #[default]
62 Get,
63 Post,
64 Put,
65 Patch,
66 Delete,
67}
68
69fn default_method() -> HttpMethod {
70 HttpMethod::Get
71}
72
73fn default_timeout() -> u64 {
74 30000
75}
76
77#[derive(Debug, Clone, Deserialize)]
81pub struct EnrichConfig {
82 pub connector: String,
84
85 #[serde(default = "default_method")]
87 pub method: HttpMethod,
88
89 #[serde(default)]
91 pub path: Option<String>,
92
93 #[serde(default)]
95 pub path_logic: Option<Value>,
96
97 #[serde(skip)]
99 pub compiled_path_logic: Option<Arc<Logic>>,
100
101 pub merge_path: String,
103
104 #[serde(default = "default_timeout")]
106 pub timeout_ms: u64,
107
108 #[serde(default)]
110 pub on_error: EnrichErrorAction,
111}
112
113#[derive(Debug, Clone, Deserialize, Default)]
115#[serde(rename_all = "lowercase")]
116pub enum EnrichErrorAction {
117 #[default]
119 Fail,
120 Skip,
122}
123
124#[derive(Debug, Clone, Deserialize)]
128pub struct PublishKafkaConfig {
129 pub connector: String,
131
132 pub topic: String,
134
135 #[serde(default)]
137 pub key_logic: Option<Value>,
138
139 #[serde(skip)]
141 pub compiled_key_logic: Option<Arc<Logic>>,
142
143 #[serde(default)]
145 pub value_logic: Option<Value>,
146
147 #[serde(skip)]
149 pub compiled_value_logic: Option<Arc<Logic>>,
150}