Skip to content

Instantly share code, notes, and snippets.

@jordi-chacon
Last active August 29, 2015 07:00
Show Gist options
  • Save jordi-chacon/e93517e4676f0b427b41 to your computer and use it in GitHub Desktop.
Save jordi-chacon/e93517e4676f0b427b41 to your computer and use it in GitHub Desktop.
My router
defmodule FacebookService.Router do
use FacebookService.Web, :router
scope "/v1/users", FacebookService do
get "/", UserIndexController, :index
get "/:user_id", UserShowController, :show
put "/:user_id", UserUpdateController, :update
end
end
defmodule FacebookService.Endpoint do
use Phoenix.Endpoint, otp_app: :facebook_service
import Phoenix.Controller, only: [accepts: 2]
plug Plug.Parsers,
parsers: [:urlencoded, :multipart, :json],
pass: ["*/*"],
json_decoder: Poison
plug Plug.MethodOverride
plug :accepts, ["json-api"]
plug FacebookService.Router
end
My test simply does:
{:ok, response} = HTTPoison.put(
"http://localhost:4000/v1/users/1234",
Poison.encode!(%{"foo" => "bar"}),
[{"content-type", "application/vnd.api+json"},
{"accept", "application/vnd.api+json"}])
IO.inspect response
Running the test produces the following log messages:
No supported media type in accept header in plug :accepts, expected one of ["html"]
#PID<0.469.0> running FacebookService.Endpoint terminated
Server: localhost:4000 (http)
Request: PUT /v1/users/1234
** (exit) an exception was raised:
** (Poison.EncodeError) unable to encode value: {:ok, %{"foo" => "bar"}}
(poison) lib/poison/encoder.ex:213: Poison.Encoder.Any.encode/2
(poison) lib/poison/encoder.ex:156: anonymous fn/4 in Poison.Encoder.Map.encode/2
(stdlib) lists.erl:1261: :lists.foldl/3
(poison) lib/poison/encoder.ex:157: Poison.Encoder.Map.encode/2
(poison) lib/poison/encoder.ex:156: anonymous fn/4 in Poison.Encoder.Map.encode/2
(stdlib) lists.erl:1261: :lists.foldl/3
(poison) lib/poison/encoder.ex:157: Poison.Encoder.Map.encode/2
(poison) lib/poison/encoder.ex:156: anonymous fn/4 in Poison.Encoder.Map.encode/2
%HTTPoison.Response{body: "",
headers: [{"connection", "keep-alive"}, {"server", "Cowboy"},
{"date", "Sat, 29 Aug 2015 06:58:11 GMT"}, {"content-length", "0"},
{"cache-control", "max-age=0, private, must-revalidate"}], status_code: 406}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment