Current section
Files
Jump to
Current section
Files
lib/GithubIssues/github_issues.ex
defmodule GithubIssues.Engine do
require Logger
@user_agent [{"User-agent", "GithubIssues.Engine"}]
def fetch(user, project) do
Logger.info("Fetching user #{user}'s project #{project}")
issues_url(user, project)
|> HTTPoison.get(@user_agent)
|> elem(1)
|> handle_response
end
def handle_response(%{status_code: 200, body: body}) do
Logger.info("Successful response")
{:ok, :jsx.decode(body)}
end
def handle_response(%{status_code: status, body: body}) do
Logger.info("Error #{status} returned")
{:error, :jsx.decode(body)}
end
@github_url Application.get_env(:github_issues, :github_url)
def issues_url(user, project) do
"#{@github_url}/repos/#{user}/#{project}/issues"
end
end