Skip to content

Instantly share code, notes, and snippets.

@betawaffle
Forked from jsvd/gist:7477358
Last active December 28, 2015 09:18
Show Gist options
  • Save betawaffle/7477418 to your computer and use it in GitHub Desktop.
Save betawaffle/7477418 to your computer and use it in GitHub Desktop.
def format event
{ header, payload } = SomeModule.somefn(event)
join_results(format_header(header), format_payload(payload))
end
def format_header(header)
# do stuff
....
# and return
{:ok, ["a", "b", "c"]}
# or
{:error, "Header Parse Failed"}
end
def format_payload(payload)
# do stuff
....
# and return
{:ok, [1, 2, 3, 4, 5, 6, 7]}
# or
{:error, "Payload Parse Failed"}
end
def join_results(header_error = { :error, _ }, _), do: header_error
def join_results(_, payload_error = { :error, _ }), do: payload_error
def join_results({ :ok, header_stuff }, { :ok, payload_stuff }) do
{ :ok, header_stuff ++ payload_stuff }
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment