@@ -34,18 +34,33 @@ defmodule Assent do
3434 end
3535
3636 defmodule MissingParamError do
37- defexception [ :expected_key , :params ]
37+ defexception [ :key , :params ]
3838
3939 @ type t :: % __MODULE__ {
40- expected_key : binary ( ) ,
40+ key : binary ( ) ,
4141 params: map ( )
4242 }
4343
44+ # TODO: Deprecated, remove in 0.3
45+ def exception ( opts ) do
46+ opts =
47+ case Keyword . fetch ( opts , :expected_key ) do
48+ { :ok , key } ->
49+ IO . warn ( "The `expected_key` option is deprecated. Please use `key` instead." )
50+ [ key: key , params: opts [ :params ] ]
51+
52+ :error ->
53+ opts
54+ end
55+
56+ struct! ( __MODULE__ , opts )
57+ end
58+
4459 def message ( exception ) do
45- expected_key = inspect ( exception . expected_key )
60+ key = inspect ( exception . key )
4661 param_keys = exception . params |> Map . keys ( ) |> Enum . sort ( ) |> inspect ( )
4762
48- "Expected #{ expected_key } in params, got: #{ param_keys } "
63+ "Expected #{ key } in params, got: #{ param_keys } "
4964 end
5065 end
5166
@@ -150,7 +165,7 @@ defmodule Assent do
150165 def fetch_param ( params , key ) when is_map ( params ) and is_binary ( key ) do
151166 case Map . fetch ( params , key ) do
152167 { :ok , value } -> { :ok , value }
153- :error -> { :error , MissingParamError . exception ( expected_key : key , params: params ) }
168+ :error -> { :error , MissingParamError . exception ( key : key , params: params ) }
154169 end
155170 end
156171
0 commit comments