Skip to main content

gproxy_protocol/transform/openai/create_image_edit/gemini/
response.rs

1use crate::gemini::generate_content::response::GeminiGenerateContentResponse;
2use crate::openai::create_image_edit::response::OpenAiCreateImageEditResponse;
3use crate::transform::openai::create_image::gemini::utils::{
4    create_image_response_body_from_gemini_response, openai_response_headers_from_gemini,
5};
6use crate::transform::openai::model_list::gemini::utils::openai_error_response_from_gemini;
7use crate::transform::utils::TransformError;
8
9impl TryFrom<GeminiGenerateContentResponse> for OpenAiCreateImageEditResponse {
10    type Error = TransformError;
11
12    fn try_from(value: GeminiGenerateContentResponse) -> Result<Self, TransformError> {
13        Ok(match value {
14            GeminiGenerateContentResponse::Success {
15                stats_code,
16                headers,
17                body,
18            } => OpenAiCreateImageEditResponse::Success {
19                stats_code,
20                headers: openai_response_headers_from_gemini(headers),
21                body: create_image_response_body_from_gemini_response(body)?,
22            },
23            GeminiGenerateContentResponse::Error {
24                stats_code,
25                headers,
26                body,
27            } => OpenAiCreateImageEditResponse::Error {
28                stats_code,
29                headers: openai_response_headers_from_gemini(headers),
30                body: openai_error_response_from_gemini(stats_code, body),
31            },
32        })
33    }
34}