defmodule Noizu.Github.User do defstruct [ :login, :id, :node_id, :avatar_url, :gravatar_id, :url, :html_url, :followers_url, :following_url, :gists_url, :starred_url, :subscriptions_url, :organizations_url, :repos_url, :events_url, :received_events_url, :type, :site_admin ] def format(issue, format) def format(issue, format) when is_list(issue) do Enum.map(issue, &format(&1, format)) end def format(nil, _), do: nil def format(%__MODULE__{} = this, :basic) do %{ login: this.login, avatar_url: this.avatar_url, url: this.html_url } end def from_json(nil), do: nil def from_json(%{ login: login, id: id, node_id: node_id, avatar_url: avatar_url, gravatar_id: gravatar_id, url: url, html_url: html_url, followers_url: followers_url, following_url: following_url, gists_url: gists_url, starred_url: starred_url, subscriptions_url: subscriptions_url, organizations_url: organizations_url, repos_url: repos_url, events_url: events_url, received_events_url: received_events_url, type: type, site_admin: site_admin, }) do %__MODULE__{ login: login, id: id, node_id: node_id, avatar_url: avatar_url, gravatar_id: gravatar_id, url: url, html_url: html_url, followers_url: followers_url, following_url: following_url, gists_url: gists_url, starred_url: starred_url, subscriptions_url: subscriptions_url, organizations_url: organizations_url, repos_url: repos_url, events_url: events_url, received_events_url: received_events_url, type: type, site_admin: site_admin, } end end