| 109 | |
| 110 | impl RouteConfig { |
| 111 | fn resolve_api_key(&self) -> Result<String, RouterError> { |
| 112 | if let Some(key) = &self.api_key { |
| 113 | return Ok(key.clone()); |
| 114 | } |
| 115 | if let Some(env_var) = &self.api_key_env { |
| 116 | return std::env::var(env_var).map_err(|_| { |
| 117 | RouterError::Internal(format!( |
| 118 | "environment variable {env_var} not set for route '{}'", |
| 119 | self.name |
| 120 | )) |
| 121 | }); |
| 122 | } |
| 123 | Err(RouterError::Internal(format!( |
| 124 | "route '{}' has neither api_key nor api_key_env", |
| 125 | self.name |
| 126 | ))) |
| 127 | } |
| 128 | |
| 129 | fn resolve(&self) -> Result<ResolvedRoute, RouterError> { |
| 130 | let protocols = openshell_core::inference::normalize_protocols(&self.protocols); |