tycho_simulation/rfq/
constants.rs1use std::env;
2
3use crate::rfq::errors::RFQError;
4
5pub struct HashflowAuth {
7 pub user: String,
8 pub key: String,
9}
10
11pub struct BebopAuth {
13 pub user: String,
14 pub key: String,
15}
16
17pub fn get_hashflow_auth() -> Result<HashflowAuth, RFQError> {
20 let user = env::var("HASHFLOW_USER").map_err(|_| {
21 RFQError::InvalidInput("HASHFLOW_USER environment variable is required".into())
22 })?;
23
24 let key = env::var("HASHFLOW_KEY").map_err(|_| {
25 RFQError::InvalidInput("HASHFLOW_KEY environment variable is required".into())
26 })?;
27
28 Ok(HashflowAuth { user, key })
29}
30
31pub struct LiquoriceAuth {
33 pub solver: String,
34 pub key: String,
35}
36
37pub fn get_liquorice_auth() -> Result<LiquoriceAuth, RFQError> {
40 let solver = env::var("LIQUORICE_USER").map_err(|_| {
41 RFQError::InvalidInput("LIQUORICE_USER environment variable is required".into())
42 })?;
43
44 let key = env::var("LIQUORICE_KEY").map_err(|_| {
45 RFQError::InvalidInput("LIQUORICE_KEY environment variable is required".into())
46 })?;
47
48 Ok(LiquoriceAuth { solver, key })
49}
50
51pub fn get_bebop_auth() -> Result<BebopAuth, RFQError> {
54 let user = env::var("BEBOP_USER").map_err(|_| {
55 RFQError::InvalidInput("BEBOP_USER environment variable is required".into())
56 })?;
57
58 let key = env::var("BEBOP_KEY")
59 .map_err(|_| RFQError::InvalidInput("BEBOP_KEY environment variable is required".into()))?;
60
61 Ok(BebopAuth { user, key })
62}
63
64#[cfg(test)]
65mod tests {
66 use std::env;
67
68 use super::*;
69
70 #[test]
71 fn test_hashflow_auth_success() {
72 env::set_var("HASHFLOW_USER", "test_user");
73 env::set_var("HASHFLOW_KEY", "test_key");
74
75 let auth = get_hashflow_auth().unwrap();
76 assert_eq!(auth.user, "test_user");
77 assert_eq!(auth.key, "test_key");
78
79 env::remove_var("HASHFLOW_USER");
80 env::remove_var("HASHFLOW_KEY");
81 }
82
83 #[test]
84 fn test_hashflow_auth_missing_user() {
85 env::remove_var("HASHFLOW_USER");
86 env::set_var("HASHFLOW_KEY", "test_key");
87
88 let result = get_hashflow_auth();
89 assert!(result.is_err());
90
91 env::remove_var("HASHFLOW_KEY");
92 }
93
94 #[test]
95 fn test_hashflow_auth_missing_key() {
96 env::set_var("HASHFLOW_USER", "test_user");
97 env::remove_var("HASHFLOW_KEY");
98
99 let result = get_hashflow_auth();
100 assert!(result.is_err());
101
102 env::remove_var("HASHFLOW_USER");
103 }
104
105 #[test]
106 fn test_bebop_auth_success() {
107 env::set_var("BEBOP_USER", "test_user");
108 env::set_var("BEBOP_KEY", "test_key");
109
110 let auth = get_bebop_auth().unwrap();
111 assert_eq!(auth.user, "test_user");
112 assert_eq!(auth.key, "test_key");
113
114 env::remove_var("BEBOP_USER");
115 env::remove_var("BEBOP_KEY");
116 }
117
118 #[test]
119 fn test_bebop_auth_missing_user() {
120 env::remove_var("BEBOP_USER");
121 env::set_var("BEBOP_KEY", "test_key");
122
123 let result = get_bebop_auth();
124 assert!(result.is_err());
125
126 env::remove_var("BEBOP_KEY");
127 }
128
129 #[test]
130 fn test_bebop_auth_missing_key() {
131 env::set_var("BEBOP_USER", "test_user");
132 env::remove_var("BEBOP_KEY");
133
134 let result = get_bebop_auth();
135 assert!(result.is_err());
136
137 env::remove_var("BEBOP_USER");
138 }
139}