Skip to content

Commit

Permalink
rename json middleware options: decode_content_types encode_content_type
Browse files Browse the repository at this point in the history
  • Loading branch information
zhongwencool committed Nov 21, 2016
1 parent a2a64bb commit f093e94
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 11 deletions.
12 changes: 6 additions & 6 deletions lib/maxwell/middleware/json.ex
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ defmodule Maxwell.Middleware.Json do
use Maxwell.Builder ~(get)a
@middleware Maxwell.Middleware.Json
# or
@middleware Maxwell.Middleware.Json, [content_type: "application/json", encode_func: &other_json_lib.encode/1]
@middleware Maxwell.Middleware.Json, [encode_content_type: "application/json", encode_func: &other_json_lib.encode/1,
decode_content_types: ["yourowntype"], decode_func: &other_json_lib.encode/1]
```
"""
use Maxwell.Middleware
Expand All @@ -38,14 +39,14 @@ defmodule Maxwell.Middleware.EncodeJson do
use Maxwell.Builder ~(get)a
@middleware Maxwell.Middleware.EncodeJson
# or
@middleware Maxwell.Middleware.EncodeJson, [content_type: "application/json", encode_func: &other_json_lib.encode/1]
@middleware Maxwell.Middleware.EncodeJson, [encode_content_type: "application/json", encode_func: &other_json_lib.encode/1]
```
"""
use Maxwell.Middleware

def request(env, opts) do
encode_fun = opts[:encode_func] || &Poison.encode/1
content_type = opts[:content_type] || "application/json"
content_type = opts[:encode_content_type] || "application/json"
case env.body do
nil ->
env
Expand All @@ -55,7 +56,6 @@ use Maxwell.Middleware
{:ok, body} = encode_fun.(env.body)
env = %{env | body: body}
headers = %{'Content-Type': content_type}
## todo
Maxwell.Middleware.Headers.request(env, headers)
end
end
Expand All @@ -76,14 +76,14 @@ defmodule Maxwell.Middleware.DecodeJson do
use Maxwell.Builder ~(get)a
@middleware Maxwell.Middleware.DecodeJson
# or
@middleware Maxwell.Middleware.DecodeJson, [valid_types: "text/javascript", decode_func: &other_json_lib.decode/1]
@middleware Maxwell.Middleware.DecodeJson, [decode_content_types: ["text/javascript"], decode_func: &other_json_lib.decode/1]
```
"""
use Maxwell.Middleware

def response(response, opts) do
decode_fun = opts[:decode_func] || &Poison.decode/1
valid_content_types = opts[:valid_types] || []
valid_content_types = opts[:decode_content_types] || []
with {:ok, result = %Maxwell{}} <- response do

content_type = result.headers['Content-Type'] || result.headers["Content-Type"]
Expand Down
6 changes: 3 additions & 3 deletions mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ defmodule Maxwell.Mixfile do
defp deps do
[
{:mimerl, "~> 1.0.2"}, # for find multipart ctype
{:poison, "~> 2.1", only: :test, optional: true},
{:ibrowse, "~> 4.2", only: :test, optional: true},
{:hackney, "~> 1.6", only: :test, optional: true},
{:poison, "~> 2.1", optional: true},
{:ibrowse, "~> 4.2", optional: true},
{:hackney, "~> 1.6", optional: true},
{:excoveralls, "~> 0.5.1", only: :test},
{:ex_doc, ">= 0.11.4", only: [:dev]},
{:markdown, github: "devinus/markdown", only: [:dev]},
Expand Down
4 changes: 2 additions & 2 deletions test/maxwell/middleware/json_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ defmodule JsonTest do
defmodule Client do
use Maxwell.Builder

middleware Maxwell.Middleware.Json, [encode_func: &Poison.encode/1, decode_fun: &Poison.decode/1, valid_types: ["text/html"]]
middleware Maxwell.Middleware.Json, [encode_func: &Poison.encode/1, decode_fun: &Poison.decode/1, decode_content_types: ["text/html"], encode_content_type: "application/json"]

adapter fn (env) ->
case env.url do
Expand Down Expand Up @@ -54,7 +54,7 @@ defmodule DecodeJsonTest do
defmodule Client do
use Maxwell.Builder, ~w(post)

middleware Maxwell.Middleware.EncodeJson, [content_type: "text/javascript"]
middleware Maxwell.Middleware.EncodeJson, [encode_content_type: "text/javascript"]
middleware Maxwell.Middleware.DecodeJson

adapter fn (env) -> {:ok, %{env|status: 200}} end
Expand Down

0 comments on commit f093e94

Please sign in to comment.