Current section
Files
Jump to
Current section
Files
lib/sauce.ex
defmodule Sauce do
@moduledoc false
use GenServer
def start(username, access_key, base_url \\ "https://saucelabs.com") do
GenServer.start_link(Callbacks, [username, access_key, base_url])
end
defmodule Jobs do
@moduledoc """
Set of functions for getting jobs information.
"""
@doc """
Gets information for a given `job_id`
iex> Sauce.Jobs.get(server_pid, "id")
"""
@spec get(pid(), charlist()) :: map()
def get(server, job_id) do
GenServer.call(server, {:get_job, job_id})
end
@doc """
Gets list of job ids for a logged user
iex> Sauce.Jobs.list(server_pid)
"""
@spec list(pid(), list()) :: map()
def list(server, options \\ []) do
GenServer.call(server, {:list, options})
end
@doc """
Gets list of failed jobs for a given `build_id`
iex> Sauce.Jobs.get_user_failed_jobs(server_pid, "build-id")
iex> Sauce.Jobs.get_user_failed_jobs(server_pid, "build-id", username: "user100")
"""
@spec get_build_failed_jobs(pid(), charlist(), list()) :: map()
def get_build_failed_jobs(server, build_id, options \\ []) do
GenServer.call(server, {:get_build_failed_jobs, build_id, options})
end
@doc """
Gets list of jobs for a given `build_id`
iex> Sauce.Jobs.get_build_jobs(server_pid, "build-id")
"""
@spec get_build_jobs(pid(), charlist()) :: map()
def get_build_jobs(server, build_id) do
GenServer.call(server, {:get_build_jobs, build_id})
end
end
defmodule Builds do
@moduledoc """
Set of functions for getting builds information.
"""
@doc """
Gets list of build for an authenticated user
iex> Sauce.Builds.get_build_jobs(server_pid, "build-id")
"""
@spec get(pid()) :: map()
def get(server) do
GenServer.call(server, {:get_builds})
end
end
defmodule Metrics do
@moduledoc """
Set of functions for getting performance metrics information.
"""
@doc """
Gets performance metrics for a given `job_id`
iex> Sauce.Metrics.get(server_pid, job_id)
"""
@spec get(pid(), charlist()) :: map()
def get(server, job_id) do
GenServer.call(server, {:get_metrics, job_id})
end
@doc """
Gets baseline history for a given `job_id`
iex> Sauce.Metrics.get_baseline_history(server_pid, job_id)
"""
@spec get_baseline_history(pid(), charlist()) :: map()
def get_baseline_history(server, job_id) do
GenServer.call(server, {:get_metrics_baseline_history, job_id})
end
end
def init(init_arg) do
{:ok, init_arg}
end
end