Skip to main content

lib/weaviate_structs/node.ex

defmodule Noizu.Weaviate.Struct.Node do
  defstruct name: nil, status: nil, version: nil, gitHash: nil, stats: %{}

  def from_json(json) when is_list(json) do
    Enum.map(json, & from_json(&1))
  end
  def from_json(nil), do: nil
  def from_json(%{nodes: nodes}) when is_list(nodes) do
    Enum.map(nodes, &from_json/1)
  end
  def from_json(%{} = json) do
    %__MODULE__{
      name: json[:name],
      status: json[:status],
      version: json[:version],
      gitHash: json[:gitHash],
      stats: json[:stats]
    }
  end
end