Skip to content

Instantly share code, notes, and snippets.

@betososa
Created December 2, 2017 15:49
Show Gist options
  • Select an option

  • Save betososa/d4f51eb3246cfbd9020060b76990a1e1 to your computer and use it in GitHub Desktop.

Select an option

Save betososa/d4f51eb3246cfbd9020060b76990a1e1 to your computer and use it in GitHub Desktop.
defmodule HandleResponse do
# Respnses from reading files
def response({ :ok, content }), do: content
def response({ :error, _ }), do: raise RuntimeError, message: "File does not exist."
# Responses from making requests
def response(%{ status_code: 200, body: body }), do: {:ok, Poison.Parser.parse!(body)}
def response(%{ status_code: 201, body: body }), do: {:ok, Poison.Parser.parse!(body)}
def response(%{ status_code: 204, body: _ }), do: {:ok, message: "Successfully deleted."}
def response(%HTTPotion.ErrorResponse{message: "econnrefused"}), do: {:error, message: "Check internet connection."}
# Response for mocking test
def response(input), do: input
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment