| 195 | } |
| 196 | |
| 197 | pub async fn send_message( |
| 198 | &self, |
| 199 | request: &MessageRequest, |
| 200 | ) -> Result<MessageResponse, ApiError> { |
| 201 | let request = MessageRequest { |
| 202 | stream: false, |
| 203 | ..request.clone() |
| 204 | }; |
| 205 | let response = self.send_with_retry(&request).await?; |
| 206 | let request_id = request_id_from_headers(response.headers()); |
| 207 | let mut response = response |
| 208 | .json::<MessageResponse>() |
| 209 | .await |
| 210 | .map_err(ApiError::from)?; |
| 211 | if response.request_id.is_none() { |
| 212 | response.request_id = request_id; |
| 213 | } |
| 214 | Ok(response) |
| 215 | } |
| 216 | |
| 217 | pub async fn stream_message( |
| 218 | &self, |