@@ -99,8 +99,9 @@ defmodule Construct.Cast do
9999 params = convert_params ( params )
100100 types = convert_types ( types )
101101 permitted = Map . keys ( types )
102+ error_values = Keyword . get ( opts , :error_values , false )
102103
103- case Enum . reduce ( permitted , { % { } , % { } , true } , & process_param ( & 1 , params , types , opts , & 2 ) ) do
104+ case Enum . reduce ( permitted , { % { } , % { } , true } , & process_param ( & 1 , params , types , error_values , opts , & 2 ) ) do
104105 { changes , _errors , true } -> { :ok , changes }
105106 { _changes , errors , false } -> { :error , errors }
106107 end
@@ -151,11 +152,11 @@ defmodule Construct.Cast do
151152 raise Construct.Error , "expected types to be a {key, value} structure, got: #{ inspect ( types ) } "
152153 end
153154
154- defp process_param ( key , params , types , opts , { changes , errors , valid? } ) do
155+ defp process_param ( key , params , types , error_values , opts , { changes , errors , valid? } ) do
155156 param_key = Atom . to_string ( key )
156157 { type , type_opts } = type! ( key , types )
157158
158- case cast_field ( param_key , type , type_opts , params , opts ) do
159+ case cast_field ( param_key , type , type_opts , params , error_values , opts ) do
159160 { :ok , value } ->
160161 { Map . put ( changes , key , value ) , errors , valid? }
161162
@@ -173,9 +174,8 @@ defmodule Construct.Cast do
173174 end
174175 end
175176
176- defp cast_field ( param_key , type , type_opts , params , opts ) do
177+ defp cast_field ( param_key , type , type_opts , params , error_values , opts ) do
177178 default_value = Keyword . get ( type_opts , :default , @ default_value )
178- error_values = Keyword . get ( opts , :error_values , false )
179179
180180 case params do
181181 % { ^ param_key => value } when default_value != @ default_value and value == default_value ->
0 commit comments