24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-12 21:52:07 +02:00

Improve result of XEP-0060 §6.5.9.12 (#2288)

Moving get_item result control to keep item-not-found on transaction
error when node does not exists
This commit is contained in:
Christophe Romain 2018-03-17 10:55:14 +01:00
parent 7beb19b01e
commit 7ba6fae67c

View File

@ -1999,8 +1999,12 @@ get_items(Host, Node, From, SubId, _MaxItems, ItemIds, RSM) ->
Host, From, Owners, AccessModel, AllowedGroups), Host, From, Owners, AccessModel, AllowedGroups),
case ItemIds of case ItemIds of
[ItemId] -> [ItemId] ->
node_call(Host, Type, get_item, case node_call(Host, Type, get_item,
[Nidx, ItemId, From, AccessModel, PS, RG, undefined]); [Nidx, ItemId, From, AccessModel, PS, RG, undefined])
of
{error, _} -> {result, {[], undefined}};
Result -> Result
end;
_ -> _ ->
node_call(Host, Type, get_items, node_call(Host, Type, get_items,
[Nidx, From, AccessModel, PS, RG, SubId, RSM]) [Nidx, From, AccessModel, PS, RG, SubId, RSM])
@ -2026,10 +2030,8 @@ get_items(Host, Node, From, SubId, _MaxItems, ItemIds, RSM) ->
{result, {result,
#pubsub{items = #ps_items{node = Node, #pubsub{items = #ps_items{node = Node,
items = itemsEls([Item])}}}; items = itemsEls([Item])}}};
_ -> Error ->
{result, Error
#pubsub{items = #ps_items{node = Node,
items = itemsEls([])}}}
end. end.
get_items(Host, Node) -> get_items(Host, Node) ->