From a43826ce0ca1f5bda604c66c060e8fbcfe74dd95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Fri, 24 Jun 2022 16:40:48 +0200 Subject: [PATCH] Manager: register OpenAPI body decoders for image mime types The OpenAPI library we use for request validation needs to know per mime type how to handle the contents. The same function for `application/octet-stream` is now used for `image/png` and `image/jpeg` as well. --- cmd/flamenco-manager/main.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmd/flamenco-manager/main.go b/cmd/flamenco-manager/main.go index aa305bf2..8a6388fe 100644 --- a/cmd/flamenco-manager/main.go +++ b/cmd/flamenco-manager/main.go @@ -20,6 +20,7 @@ import ( "time" "github.com/benbjohnson/clock" + "github.com/getkin/kin-openapi/openapi3filter" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/mattn/go-colorable" @@ -258,6 +259,7 @@ func buildWebService( } validator := api_impl.SwaggerValidator(swagger, persist) e.Use(validator) + registerOAPIBodyDecoders() // Register routes. api.RegisterHandlers(e, flamenco) @@ -444,3 +446,10 @@ func randomDelayMiddleware(next echo.HandlerFunc) echo.HandlerFunc { return err } } + +func registerOAPIBodyDecoders() { + // Register "decoders" so that binary data other than + // "application/octet-stream" can be handled by our OpenAPI library. + openapi3filter.RegisterBodyDecoder("image/jpeg", openapi3filter.FileBodyDecoder) + openapi3filter.RegisterBodyDecoder("image/png", openapi3filter.FileBodyDecoder) +}