SparkPost / elixir-sparkpost

SparkPost client library for Elixir https://developers.sparkpost.com
Apache License 2.0
44 stars 13 forks source link

More idiomatic response tuples #28

Open karlseguin opened 7 years ago

karlseguin commented 7 years ago

It'd be nice if functions returned {:error, X} and {:ok, Y}. It results in more elegant client code that doesn't have to match against specific structures.

def(%Transmission.Response{id: id), do: ...

vs

def({:ok, %{id: id}}), do: ...

Same same with case and with

ewandennis commented 7 years ago

Thanks for this @karlseguin and sorry for the long latency. This is obviously a breaking change for existing modules, although we do have the beginnings of this in the suppression list module @asgoel very kindly contributed. I suspected at design time that there might be API responses which didn't map cleanly to :ok or :error too and haven't yet bottomed out how to handle those. Will label this for the next major version bump nonetheless.