Skip to main content

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

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