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 fn get_bebop_auth() -> Result<BebopAuth, RFQError> {
34 let user = env::var("BEBOP_USER").map_err(|_| {
35 RFQError::InvalidInput("BEBOP_USER environment variable is required".into())
36 })?;
37
38 let key = env::var("BEBOP_KEY")
39 .map_err(|_| RFQError::InvalidInput("BEBOP_KEY environment variable is required".into()))?;
40
41 Ok(BebopAuth { user, key })
42}
43
44#[cfg(test)]
45mod tests {
46 use std::env;
47
48 use super::*;
49
50 #[test]
51 fn test_hashflow_auth_success() {
52 env::set_var("HASHFLOW_USER", "test_user");
53 env::set_var("HASHFLOW_KEY", "test_key");
54
55 let auth = get_hashflow_auth().unwrap();
56 assert_eq!(auth.user, "test_user");
57 assert_eq!(auth.key, "test_key");
58
59 env::remove_var("HASHFLOW_USER");
60 env::remove_var("HASHFLOW_KEY");
61 }
62
63 #[test]
64 fn test_hashflow_auth_missing_user() {
65 env::remove_var("HASHFLOW_USER");
66 env::set_var("HASHFLOW_KEY", "test_key");
67
68 let result = get_hashflow_auth();
69 assert!(result.is_err());
70
71 env::remove_var("HASHFLOW_KEY");
72 }
73
74 #[test]
75 fn test_hashflow_auth_missing_key() {
76 env::set_var("HASHFLOW_USER", "test_user");
77 env::remove_var("HASHFLOW_KEY");
78
79 let result = get_hashflow_auth();
80 assert!(result.is_err());
81
82 env::remove_var("HASHFLOW_USER");
83 }
84
85 #[test]
86 fn test_bebop_auth_success() {
87 env::set_var("BEBOP_USER", "test_user");
88 env::set_var("BEBOP_KEY", "test_key");
89
90 let auth = get_bebop_auth().unwrap();
91 assert_eq!(auth.user, "test_user");
92 assert_eq!(auth.key, "test_key");
93
94 env::remove_var("BEBOP_USER");
95 env::remove_var("BEBOP_KEY");
96 }
97
98 #[test]
99 fn test_bebop_auth_missing_user() {
100 env::remove_var("BEBOP_USER");
101 env::set_var("BEBOP_KEY", "test_key");
102
103 let result = get_bebop_auth();
104 assert!(result.is_err());
105
106 env::remove_var("BEBOP_KEY");
107 }
108
109 #[test]
110 fn test_bebop_auth_missing_key() {
111 env::set_var("BEBOP_USER", "test_user");
112 env::remove_var("BEBOP_KEY");
113
114 let result = get_bebop_auth();
115 assert!(result.is_err());
116
117 env::remove_var("BEBOP_USER");
118 }
119}