@@ -10,7 +10,6 @@ use axum::{
1010use axum_typed_multipart:: { FieldData , TryFromMultipart , TypedMultipart } ;
1111use imageproc:: image:: {
1212 codecs:: jpeg:: JpegEncoder ,
13- error:: EncodingError ,
1413 imageops:: { overlay, FilterType } ,
1514 DynamicImage , ImageError , ImageFormat , ImageReader ,
1615} ;
@@ -40,7 +39,6 @@ enum AppError {
4039 EncodingFailure ,
4140 SvgParserFailure ,
4241 InvalidSize ,
43- RenderFailure ( EncodingError ) ,
4442}
4543
4644impl IntoResponse for AppError {
@@ -57,11 +55,11 @@ impl IntoResponse for AppError {
5755 }
5856
5957 let ( status, message) = match self {
60- AppError :: DecodingFailure ( _ ) => (
58+ AppError :: DecodingFailure ( err ) => (
6159 StatusCode :: INTERNAL_SERVER_ERROR ,
6260 ErrorResponse {
6361 title : "Decoding-Error" . into ( ) ,
64- details : "Failed to decode one of the overlays" . into ( ) ,
62+ details : format ! ( "Failed to decode one of the overlays. {}" , err ) ,
6563 } ,
6664 ) ,
6765 AppError :: MissingMimeType => (
@@ -99,13 +97,6 @@ impl IntoResponse for AppError {
9997 details : "The image or overlay has an invalid size" . into ( ) ,
10098 } ,
10199 ) ,
102- AppError :: RenderFailure ( _) => (
103- StatusCode :: INTERNAL_SERVER_ERROR ,
104- ErrorResponse {
105- title : "Svg-Error" . into ( ) ,
106- details : "Failed to parse one of the svg-overlays" . into ( ) ,
107- } ,
108- ) ,
109100 } ;
110101
111102 ( status, axum:: Json ( message) ) . into_response ( )
@@ -141,13 +132,13 @@ fn prepare_layers(
141132
142133 let rgba = pixmap. encode_png ( ) . map_err ( |_| AppError :: EncodingFailure ) ?;
143134 let mut overlay_reader =
144- ImageReader :: new ( Cursor :: new ( Bytes :: from_iter ( rgba. into_iter ( ) ) ) ) ;
135+ ImageReader :: new ( Cursor :: new ( Bytes :: from_iter ( rgba) ) ) ;
145136 overlay_reader. set_format ( ImageFormat :: Png ) ;
146137 let mut overlay_image = overlay_reader
147138 . decode ( )
148- . map_err ( |err| AppError :: DecodingFailure ( err ) ) ?;
139+ . map_err ( AppError :: DecodingFailure ) ?;
149140 overlay_image = overlay_image. resize ( image_witdh, image_height, FilterType :: Nearest ) ;
150- return Ok ( overlay_image) ;
141+ Ok ( overlay_image)
151142 } else {
152143 let mut overlay_reader = ImageReader :: new ( Cursor :: new ( layer. contents . clone ( ) ) ) ;
153144 let mimetype = layer. metadata . content_type . as_ref ( ) ;
@@ -158,9 +149,9 @@ fn prepare_layers(
158149 ) ;
159150 let mut overlay_image = overlay_reader
160151 . decode ( )
161- . map_err ( |err| AppError :: DecodingFailure ( err ) ) ?;
152+ . map_err ( AppError :: DecodingFailure ) ?;
162153 overlay_image = overlay_image. resize ( image_witdh, image_height, FilterType :: Nearest ) ;
163- return Ok ( overlay_image) ;
154+ Ok ( overlay_image)
164155 }
165156 }
166157}
@@ -178,15 +169,15 @@ async fn create_document(
178169 ) ;
179170 let image = image_reader
180171 . decode ( )
181- . map_err ( |err| AppError :: DecodingFailure ( err ) ) ?;
172+ . map_err ( AppError :: DecodingFailure ) ?;
182173
183174 let result: Result < DynamicImage , AppError > = payload
184175 . layers
185176 . iter ( )
186177 . map ( prepare_layers ( image. width ( ) , image. height ( ) ) )
187178 . try_fold ( image. clone ( ) , |mut acc, layer| {
188179 overlay ( & mut acc, & layer?, 0 , 0 ) ;
189- return Ok ( acc) ;
180+ Ok ( acc)
190181 } ) ;
191182
192183 let mut default = vec ! [ ] ;
@@ -197,5 +188,5 @@ async fn create_document(
197188
198189 let mut headers = HeaderMap :: new ( ) ;
199190 headers. insert ( "Content-Type" , "image/jpeg" . parse ( ) . unwrap ( ) ) ;
200- return Ok ( ( headers, default) ) ;
191+ Ok ( ( headers, default) )
201192}
0 commit comments