Last active
August 29, 2015 07:00
-
-
Save jordi-chacon/e93517e4676f0b427b41 to your computer and use it in GitHub Desktop.
My router
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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