pagination.ex: Drop atom keys in params
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Mon, 25 Mar 2019 23:07:33 +0000 (00:07 +0100)
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Thu, 28 Mar 2019 16:18:59 +0000 (17:18 +0100)
Atom keys could also have been transformed to string, or the other
way around but this one is more efficient and what we actually
expect with the current param_types in Pagination

lib/pleroma/pagination.ex

index 7c864deef8feb05b79d8001bba03389c94e77294..f435e5c9cb43c0d262ef231d3a9985d2eab75a9b 100644 (file)
@@ -36,6 +36,12 @@ defmodule Pleroma.Pagination do
       limit: :integer
     }
 
+    params =
+      Enum.reduce(params, %{}, fn
+        {key, _value}, acc when is_atom(key) -> Map.drop(acc, [key])
+        {key, value}, acc -> Map.put(acc, key, value)
+      end)
+
     changeset = cast({%{}, param_types}, params, Map.keys(param_types))
     changeset.changes
   end