logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 9e96c9ae48182d3ae1d00e9475bf0af50cad9f93
parent 241f7cb1ed91a8d6855dbd03517e85c98c08edb7
Author: rinpatch <rinpatch@sdf.org>
Date:   Sat,  3 Oct 2020 12:35:49 +0000

Merge branch 'fix/empty-params-openapi' into 'develop'

OpenAPI CastAndValidate: filter out empty params

Closes #2198

See merge request pleroma/pleroma!3047

Diffstat:

MCHANGELOG.md5+++++
Mlib/pleroma/web/api_spec/cast_and_validate.ex4++++
2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -39,6 +39,11 @@ switched to a new configuration mechanism, however it was not officially removed - Add documented-but-missing chat pagination. - Allow sending out emails again. +## Unreleased (Patch) + +### Changed +- API: Empty parameter values for integer parameters are now ignored in non-strict validaton mode. + ## [2.1.2] - 2020-09-17 ### Security diff --git a/lib/pleroma/web/api_spec/cast_and_validate.ex b/lib/pleroma/web/api_spec/cast_and_validate.ex @@ -115,6 +115,10 @@ defmodule Pleroma.Web.ApiSpec.CastAndValidate do %{reason: :unexpected_field, name: name, path: [name]}, params -> Map.delete(params, name) + # Filter out empty params + %{reason: :invalid_type, path: [name_atom], value: ""}, params -> + Map.delete(params, to_string(name_atom)) + %{reason: :invalid_enum, name: nil, path: path, value: value}, params -> path = path |> Enum.reverse() |> tl() |> Enum.reverse() |> list_items_to_string() update_in(params, path, &List.delete(&1, value))