[elixir] Typespec - allow null on optional struct-attributes (#1514)

* Typespec - allow null on optional parameters

* Run Petstore for elixir

* considers 'nullable' in model template, fixes 'isRequired'
This commit is contained in:
Michael Ramstein 2018-11-29 08:58:32 +01:00 committed by William Cheng
parent c537557a91
commit 6930433def
31 changed files with 84 additions and 84 deletions

View File

@ -11,7 +11,7 @@
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
{{#vars}}:"{{baseName}}" => {{{dataType}}}{{#hasMore}}, {{#vars}}:"{{baseName}}" => {{{datatype}}}{{#isNullable}} | nil{{/isNullable}}{{^isNullable}}{{^required}} | nil{{/required}}{{/isNullable}}{{#hasMore}},
{{/hasMore}}{{/vars}} {{/hasMore}}{{/vars}}
} }
end end

View File

@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.AdditionalPropertiesClass do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"map_property" => %{optional(String.t) => String.t}, :"map_property" => %{optional(String.t) => String.t} | nil,
:"map_of_map_property" => %{optional(String.t) => %{optional(String.t) => String.t}} :"map_of_map_property" => %{optional(String.t) => %{optional(String.t) => String.t}} | nil
} }
end end

View File

@ -15,7 +15,7 @@ defmodule OpenapiPetstore.Model.Animal do
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"className" => String.t, :"className" => String.t,
:"color" => String.t :"color" => String.t | nil
} }
end end

View File

@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.ApiResponse do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"code" => integer(), :"code" => integer() | nil,
:"type" => String.t, :"type" => String.t | nil,
:"message" => String.t :"message" => String.t | nil
} }
end end

View File

@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.ArrayOfArrayOfNumberOnly do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"ArrayArrayNumber" => [[float()]] :"ArrayArrayNumber" => [[float()]] | nil
} }
end end

View File

@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.ArrayOfNumberOnly do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"ArrayNumber" => [float()] :"ArrayNumber" => [float()] | nil
} }
end end

View File

@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.ArrayTest do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"array_of_string" => [String.t], :"array_of_string" => [String.t] | nil,
:"array_array_of_integer" => [[integer()]], :"array_array_of_integer" => [[integer()]] | nil,
:"array_array_of_model" => [[ReadOnlyFirst]] :"array_array_of_model" => [[ReadOnlyFirst]] | nil
} }
end end

View File

@ -18,12 +18,12 @@ defmodule OpenapiPetstore.Model.Capitalization do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"smallCamel" => String.t, :"smallCamel" => String.t | nil,
:"CapitalCamel" => String.t, :"CapitalCamel" => String.t | nil,
:"small_Snake" => String.t, :"small_Snake" => String.t | nil,
:"Capital_Snake" => String.t, :"Capital_Snake" => String.t | nil,
:"SCA_ETH_Flow_Points" => String.t, :"SCA_ETH_Flow_Points" => String.t | nil,
:"ATT_NAME" => String.t :"ATT_NAME" => String.t | nil
} }
end end

View File

@ -16,8 +16,8 @@ defmodule OpenapiPetstore.Model.Cat do
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"className" => String.t, :"className" => String.t,
:"color" => String.t, :"color" => String.t | nil,
:"declawed" => boolean() :"declawed" => boolean() | nil
} }
end end

View File

@ -14,7 +14,7 @@ defmodule OpenapiPetstore.Model.Category do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"id" => integer(), :"id" => integer() | nil,
:"name" => String.t :"name" => String.t
} }
end end

View File

@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.ClassModel do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"_class" => String.t :"_class" => String.t | nil
} }
end end

View File

@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.Client do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"client" => String.t :"client" => String.t | nil
} }
end end

View File

@ -16,8 +16,8 @@ defmodule OpenapiPetstore.Model.Dog do
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"className" => String.t, :"className" => String.t,
:"color" => String.t, :"color" => String.t | nil,
:"breed" => String.t :"breed" => String.t | nil
} }
end end

View File

@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.EnumArrays do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"just_symbol" => String.t, :"just_symbol" => String.t | nil,
:"array_enum" => [String.t] :"array_enum" => [String.t] | nil
} }
end end

View File

@ -17,11 +17,11 @@ defmodule OpenapiPetstore.Model.EnumTest do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"enum_string" => String.t, :"enum_string" => String.t | nil,
:"enum_string_required" => String.t, :"enum_string_required" => String.t,
:"enum_integer" => integer(), :"enum_integer" => integer() | nil,
:"enum_number" => float(), :"enum_number" => float() | nil,
:"outerEnum" => OuterEnum :"outerEnum" => OuterEnum | nil
} }
end end

View File

@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.FileSchemaTestClass do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"file" => File, :"file" => File | nil,
:"files" => [File] :"files" => [File] | nil
} }
end end

View File

@ -25,18 +25,18 @@ defmodule OpenapiPetstore.Model.FormatTest do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"integer" => integer(), :"integer" => integer() | nil,
:"int32" => integer(), :"int32" => integer() | nil,
:"int64" => integer(), :"int64" => integer() | nil,
:"number" => float(), :"number" => float(),
:"float" => float(), :"float" => float() | nil,
:"double" => float(), :"double" => float() | nil,
:"string" => String.t, :"string" => String.t | nil,
:"byte" => binary(), :"byte" => binary(),
:"binary" => String.t, :"binary" => String.t | nil,
:"date" => Date.t, :"date" => Date.t,
:"dateTime" => DateTime.t, :"dateTime" => DateTime.t | nil,
:"uuid" => String.t, :"uuid" => String.t | nil,
:"password" => String.t :"password" => String.t
} }
end end

View File

@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.HasOnlyReadOnly do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"bar" => String.t, :"bar" => String.t | nil,
:"foo" => String.t :"foo" => String.t | nil
} }
end end

View File

@ -16,10 +16,10 @@ defmodule OpenapiPetstore.Model.MapTest do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"map_map_of_string" => %{optional(String.t) => %{optional(String.t) => String.t}}, :"map_map_of_string" => %{optional(String.t) => %{optional(String.t) => String.t}} | nil,
:"map_of_enum_string" => %{optional(String.t) => String.t}, :"map_of_enum_string" => %{optional(String.t) => String.t} | nil,
:"direct_map" => %{optional(String.t) => boolean()}, :"direct_map" => %{optional(String.t) => boolean()} | nil,
:"indirect_map" => %{optional(String.t) => boolean()} :"indirect_map" => %{optional(String.t) => boolean()} | nil
} }
end end

View File

@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.MixedPropertiesAndAdditionalPropertiesClass do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"uuid" => String.t, :"uuid" => String.t | nil,
:"dateTime" => DateTime.t, :"dateTime" => DateTime.t | nil,
:"map" => %{optional(String.t) => Animal} :"map" => %{optional(String.t) => Animal} | nil
} }
end end

View File

@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.Model200Response do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"name" => integer(), :"name" => integer() | nil,
:"class" => String.t :"class" => String.t | nil
} }
end end

View File

@ -17,9 +17,9 @@ defmodule OpenapiPetstore.Model.Name do
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"name" => integer(), :"name" => integer(),
:"snake_case" => integer(), :"snake_case" => integer() | nil,
:"property" => String.t, :"property" => String.t | nil,
:"123Number" => integer() :"123Number" => integer() | nil
} }
end end

View File

@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.NumberOnly do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"JustNumber" => float() :"JustNumber" => float() | nil
} }
end end

View File

@ -18,12 +18,12 @@ defmodule OpenapiPetstore.Model.Order do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"id" => integer(), :"id" => integer() | nil,
:"petId" => integer(), :"petId" => integer() | nil,
:"quantity" => integer(), :"quantity" => integer() | nil,
:"shipDate" => DateTime.t, :"shipDate" => DateTime.t | nil,
:"status" => String.t, :"status" => String.t | nil,
:"complete" => boolean() :"complete" => boolean() | nil
} }
end end

View File

@ -15,9 +15,9 @@ defmodule OpenapiPetstore.Model.OuterComposite do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"my_number" => float(), :"my_number" => float() | nil,
:"my_string" => String.t, :"my_string" => String.t | nil,
:"my_boolean" => boolean() :"my_boolean" => boolean() | nil
} }
end end

View File

@ -18,12 +18,12 @@ defmodule OpenapiPetstore.Model.Pet do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"id" => integer(), :"id" => integer() | nil,
:"category" => Category, :"category" => Category | nil,
:"name" => String.t, :"name" => String.t,
:"photoUrls" => [String.t], :"photoUrls" => [String.t],
:"tags" => [Tag], :"tags" => [Tag] | nil,
:"status" => String.t :"status" => String.t | nil
} }
end end

View File

@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.ReadOnlyFirst do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"bar" => String.t, :"bar" => String.t | nil,
:"baz" => String.t :"baz" => String.t | nil
} }
end end

View File

@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.Return do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"return" => integer() :"return" => integer() | nil
} }
end end

View File

@ -13,7 +13,7 @@ defmodule OpenapiPetstore.Model.SpecialModelName do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"$special[property.name]" => integer() :"$special[property.name]" => integer() | nil
} }
end end

View File

@ -14,8 +14,8 @@ defmodule OpenapiPetstore.Model.Tag do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"id" => integer(), :"id" => integer() | nil,
:"name" => String.t :"name" => String.t | nil
} }
end end

View File

@ -20,14 +20,14 @@ defmodule OpenapiPetstore.Model.User do
] ]
@type t :: %__MODULE__{ @type t :: %__MODULE__{
:"id" => integer(), :"id" => integer() | nil,
:"username" => String.t, :"username" => String.t | nil,
:"firstName" => String.t, :"firstName" => String.t | nil,
:"lastName" => String.t, :"lastName" => String.t | nil,
:"email" => String.t, :"email" => String.t | nil,
:"password" => String.t, :"password" => String.t | nil,
:"phone" => String.t, :"phone" => String.t | nil,
:"userStatus" => integer() :"userStatus" => integer() | nil
} }
end end