diff --git a/modules/swagger-codegen/src/main/resources/elixir/deserializer.ex.mustache b/modules/swagger-codegen/src/main/resources/elixir/deserializer.ex.mustache index 931ba8f7b9c..ada1cf1346d 100644 --- a/modules/swagger-codegen/src/main/resources/elixir/deserializer.ex.mustache +++ b/modules/swagger-codegen/src/main/resources/elixir/deserializer.ex.mustache @@ -21,11 +21,15 @@ defmodule {{moduleName}}.Deserializer do |> Map.update!(field, &(Map.new(&1, fn {key, val} -> {key, Poison.Decode.decode(val, Keyword.merge(options, [as: struct(mod)]))} end))) end def deserialize(model, field, :date, _, _options) do - case DateTime.from_iso8601(Map.get(model, field)) do - {:ok, datetime} -> - Map.put(model, field, datetime) - _ -> - model + value = Map.get(model, field) + case is_binary(value) do + true -> case DateTime.from_iso8601(value) do + {:ok, datetime, _offset} -> + Map.put(model, field, datetime) + _ -> + model + end + false -> model end end end