query params?
iex(98)> %{
...(98)> "callbackType" => "json",
...(98)> "customer_email" => "",
...(98)> "customer_phone" => "",
...(98)> "products" => [%{"name" => "name", "price" => "1234", "quantity" => "1"}],
...(98)> } |> Query.encode()
** (ArgumentError) cannot encode maps inside lists when the map has 0 or more than 1 element, got: %{"name" => "name", "price" => "1234", "quantity" => "1"}
Если в листе только один ключ - всё окей. Но надо именно так.
Проблема в том, что сначала эти параметры кодятся в Jason.encode, после чего подписываются ключом и ключ добавляется к этим параметрам.
Сейчас приходится параметры как выше сначала энкодить и подписывать, а потом в этих параметрах ключ products менять на:
Map.put(params, "products", %{"0": %{"name" => "name", "price" => "1234", "quantity" => "1"}})
и после этого в
URI.new!("http://asdf/") |> URI.append_query(Query.encode(params))
Что мне кажется максимально коряво.
Есть либа, которая это упаковывает. Может @fried_zucchini подскажет
если ты про ut, то она тоже такое не поддерживает, в рфц ничего про карты в списках не было
Не, есть другая либа, которая кверю кодирует
мне кажется такое только form-style можно закодировать
Обсуждают сегодня