lib/api/structs/label.ex

defmodule Noizu.Github.Label do
  defstruct [
    :id,
    :node_id,
    :url,
    :name,
    :color,
    :default,
    :description
  ]


  def format(label, format)
  def format(label, format) when is_list(label) do
    Enum.map(label, &format(&1, format))
  end
  def format(nil, _), do: nil
  def format(%__MODULE__{} = this, :basic) do
    %{
      name: this.name,
      color: this.color
    }
  end

  def from_json(v) when is_list(v) do
    Enum.map(v, &from_json(&1))
  end

  def from_json(%{
    :id => id,
    :node_id => node_id,
    :url => url,
    :name => name,
    :color => color,
    :default => default,
    :description => description,
  }) do
    %__MODULE__{
      id: id,
      node_id: node_id,
      url: url,
      name: name,
      color: color,
      default: default,
      description: description,
    }
  end
end