Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update OAuth2.Client.get_token! errors (#98)
* Update OAuth2.Client.get_token! errors Updates the `OAuth2.Client.get_token!` function to handle error OAuth2.Response structs. I sent some incomplete data to Facebook Graph and saw this error bubble up: ``` [error] %ArgumentError{message: "raise/1 expects a module name, string or exception as the first argument, got: %OAuth2.Response{body: %{\"error\" => %{\"code\" => 101, \"fbtrace_id\" => \"Eelth+pfiU9\", \"message\" => \"Missing client_id parameter.\", \"type\" => \"OAuthException\"}}, headers: [{\"www-authenticate\", \"OAuth \\\"Facebook Platform\\\" \\\"invalid_client\\\" \\\"Missing client_id parameter.\\\"\"}, {\"access-control-allow-origin\", \"*\"}, {\"pragma\", \"no-cache\"}, {\"cache-control\", \"no-store\"}, {\"x-fb-rev\", \"3349395\"}, {\"content-type\", \"application/json\"}, {\"x-fb-trace-id\", \"Eelth+pfiU9\"}, {\"facebook-api-version\", \"v2.8\"}, {\"expires\", \"Sat, 01 Jan 2000 00:00:00 GMT\"}, {\"x-fb-debug\", \"9GWPCrYAIzlrSnt0iLqP/3E4hdmOJpP7QXxBOXTG2Ew7CloqVwka+HXAjyCTewfTaH0F/sUVkDLMcm7+6jOEEQ==\"}, {\"date\", \"Thu, 05 Oct 2017 15:36:54 GMT\"}, {\"connection\", \"keep-alive\"}, {\"content-length\", \"114\"}], status_code: 400}"} ``` Using `OAuth2.Request.request!` as a model, I added a similar error handling case to `OAuth2.Client.get_token!`. Now the error raised looks like: ``` [error] #PID<0.1063.0> running ExampleOAuth2Web.Endpoint terminated Server: oauth2.example.dev:80 (http) Request: POST / ** (exit) an exception was raised: ** (OAuth2.Error) Server responded with status: 400 Headers: www-authenticate: OAuth "Facebook Platform" "invalid_client" "Missing client_id parameter." access-control-allow-origin: * pragma: no-cache cache-control: no-store x-fb-rev: 3349509 content-type: application/json x-fb-trace-id: CIc8eDTN/BC facebook-api-version: v2.8 expires: Sat, 01 Jan 2000 00:00:00 GMT x-fb-debug: wJzExwqDXtAkHKtBNo4xKE21zBO730qctNXaP9A7bqenLRuTkGq109qvx8iOy063OiE3uVunf/Mt1trqvhuwVg== date: Thu, 05 Oct 2017 15:40:21 GMT connection: keep-alive content-length: 115 Body: %{"error" => %{"code" => 101, "fbtrace_id" => "CIc8eDTN/BC", "message" => "Missing client_id parameter.", "type" => "OAuthException"}} (oauth2) lib/oauth2/client.ex:249: OAuth2.Client.get_token!/4 ``` * Add test * Additional test coverage
- Loading branch information