-module(livery_stripe_event).
-moduledoc "Stripe Events API (re-fetch a webhook event by id, or list events).".
-export([retrieve/2, list/1, list/2]).
-define(BASE, <<"/events">>).
-spec retrieve(livery_client:client(), binary()) -> {ok, map()} | {error, term()}.
retrieve(Client, Id) ->
livery_stripe_client:do_request(Client, get, path(Id), none).
-spec list(livery_client:client()) -> {ok, map()} | {error, term()}.
list(Client) ->
list(Client, #{}).
-spec list(livery_client:client(), map() | list()) -> {ok, map()} | {error, term()}.
list(Client, Params) ->
livery_stripe_client:do_request(Client, get, ?BASE, Params).
path(Id) ->
<<?BASE/binary, "/", Id/binary>>.