All Downloads are FREE. Search and download functionalities are using the official Maven repository.

elixir.model.mustache Maven / Gradle / Ivy

There is a newer version: 7.6.0
Show newest version
{{>licenseInfo}}
{{#models}}{{#model}}defmodule {{moduleName}}.Model.{{classname}} do
  @moduledoc """
  {{&description}}
  """

  @derive Jason.Encoder
  defstruct [
    {{#vars}}{{#atom}}{{&baseName}}{{/atom}}{{^-last}},
    {{/-last}}{{/vars}}
  ]

  @type t :: %__MODULE__{
    {{#vars}}{{#atom}}{{&baseName}}{{/atom}} => {{{datatype}}}{{#isNullable}} | nil{{/isNullable}}{{^isNullable}}{{^required}} | nil{{/required}}{{/isNullable}}{{^-last}},
    {{/-last}}{{/vars}}
  }

{{#hasComplexVars}}
  alias {{&moduleName}}.Deserializer

  def decode(value) do
    value
    {{#vars}}
    {{^isPrimitiveType}}
    {{#baseType}} |> Deserializer.deserialize({{#atom}}{{&baseName}}{{/atom}}, {{#isArray}}:list, {{&moduleName}}.Model.{{{items.baseType}}}{{/isArray}}{{#isMap}}:map, {{&moduleName}}.Model.{{{items.baseType}}}{{/isMap}}{{#isDate}}:date, nil{{/isDate}}{{#isDateTime}}:datetime, nil{{/isDateTime}}{{^isDate}}{{^isDateTime}}{{^isMap}}{{^isArray}}:struct, {{moduleName}}.Model.{{baseType}}{{/isArray}}{{/isMap}}{{/isDateTime}}{{/isDate}})
    {{/baseType}}
    {{/isPrimitiveType}}
    {{/vars}}
{{/hasComplexVars}}
{{^hasComplexVars}}
  def decode(value) do
    value
{{/hasComplexVars}}
  end
end
{{/model}}{{/models}}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy