% @hidden -module(kafe_protocol_list_groups). -include("../include/kafe.hrl"). -export([ run/1, request/1, response/2 ]). run(BrokerID) -> kafe_protocol:run(BrokerID, {call, fun ?MODULE:request/1, [], fun ?MODULE:response/2}). request(State) -> kafe_protocol:request(?LIST_GROUPS_REQUEST, <<>>, State, ?V0). % ListGroups Response (Version: 0) => error_code [groups] % error_code => INT16 % groups => group_id protocol_type % group_id => STRING % protocol_type => STRING response(<>, _ApiVersion) -> {ok, #{error_code => kafe_error:code(ErrorCode), groups => response(GroupsLength, Remainder, [])}}. response(0, _, Groups) -> Groups; response(N, <>, Acc) -> response(N - 1, Remainder, [#{group_id => GroupID, protocol_type => ProtocolType}|Acc]).