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
1 changed files with 8 additions and 6 deletions

View File

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