Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2018-12-03 15:52:53 +0300
committerPaweł Chmielowski <pchmielowski@process-one.net>2018-12-03 15:53:07 +0300
commit9139ea86fbfd806f18e886bba92fc0b77ffce2be (patch)
tree6f447078e75d6a312b6bec6a3a18e656fb94a836 /src/mod_http_api.erl
parent59a148d80b0a61855b46ce9c3a15a4aa580d01a6 (diff)
Format list of {{name,string}, {value, _}} as json struct name/val
Diffstat (limited to 'src/mod_http_api.erl')
-rw-r--r--src/mod_http_api.erl8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mod_http_api.erl b/src/mod_http_api.erl
index e3c7b3bc7..3fb0d5981 100644
--- a/src/mod_http_api.erl
+++ b/src/mod_http_api.erl
@@ -476,6 +476,9 @@ format_result(Code, {Name, restuple}) ->
format_result(Els, {Name, {list, {_, {tuple, [{_, atom}, _]}} = Fmt}}) ->
{misc:atom_to_binary(Name), {[format_result(El, Fmt) || El <- Els]}};
+format_result(Els, {Name, {list, {_, {tuple, [{name, string}, {value, _}]}} = Fmt}}) ->
+ {misc:atom_to_binary(Name), {[format_result(El, Fmt) || El <- Els]}};
+
format_result(Els, {Name, {list, Def}}) ->
{misc:atom_to_binary(Name), [element(2, format_result(El, Def)) || El <- Els]};
@@ -484,6 +487,11 @@ format_result(Tuple, {_Name, {tuple, [{_, atom}, ValFmt]}}) ->
{_, Val2} = format_result(Val, ValFmt),
{misc:atom_to_binary(Name2), Val2};
+format_result(Tuple, {_Name, {tuple, [{name, string}, {value, _} = ValFmt]}}) ->
+ {Name2, Val} = Tuple,
+ {_, Val2} = format_result(Val, ValFmt),
+ {iolist_to_binary(Name2), Val2};
+
format_result(Tuple, {Name, {tuple, Def}}) ->
Els = lists:zip(tuple_to_list(Tuple), Def),
{misc:atom_to_binary(Name), {[format_result(El, ElDef) || {El, ElDef} <- Els]}};