summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-10-03 12:35:49 +0000
committerrinpatch <rinpatch@sdf.org>2020-10-03 12:35:49 +0000
commit9e96c9ae48182d3ae1d00e9475bf0af50cad9f93 (patch)
treec1ef528b3233a2b9e2ecb8129842328f9286e7ae
parent241f7cb1ed91a8d6855dbd03517e85c98c08edb7 (diff)
parent006b62fd12adadbf698419990ab13bf6f1e901b2 (diff)
Merge branch 'fix/empty-params-openapi' into 'develop'
OpenAPI CastAndValidate: filter out empty params Closes #2198 See merge request pleroma/pleroma!3047
-rw-r--r--CHANGELOG.md5
-rw-r--r--lib/pleroma/web/api_spec/cast_and_validate.ex4
2 files changed, 9 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index e02e84301..213467d6e 100644
--- 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
index fbfc27d6f..6d1a7ebbc 100644
--- 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))