defmodule Noizu.Github.Issues do
defstruct [
:complete,
:total,
:issues
]
def format(issue, format)
def format(issue, format) when is_list(issue) do
Enum.map(issue, &format(&1, format))
end
def format(%__MODULE__{} = this, format) do
Enum.map(this.issues || [], &Noizu.Github.Issue.format(&1, format))
end
def from_json(issues) when is_list(issues) do
issues = Enum.map(issues || [], &(Noizu.Github.Issue.from_json(&1)))
%__MODULE__{
complete: true,
total: length(issues),
issues: issues
}
end
def from_json(%{total_count: count, incomplete_results: incomplete, items: issues}) when is_list(issues) do
issues = Enum.map(issues || [], &(Noizu.Github.Issue.from_json(&1)))
%__MODULE__{
complete: !incomplete,
total: count,
issues: issues
}
end
end