:icons: font
:encoding: utf-8
= NodePing Elixir
An Elixir package for managing checks, schedules, contacts, etc. on your NodePing account.
NOTE: Current state: The package is complete at this point,
but is being rechecked at this point to look for anything missing
plus an update to the SSL check and an update to the README will need to be done
== Installation
The package can be installed by adding `nodeping` to your list of dependencies in `mix.exs`:
[source,elixir]
----
def deps do
[
{:nodeping, git: "https://github.com/stratacast/nodeping_elixir", tag: "1.0.0"}
]
end
----
And run `mix deps.get`.
== Usage
You will need to create an account at https://nodeping.com[NodePing] and fetch your API token under Account `Settings -> API`.
This will be your API `token` that you provide to authenticate with the service and manage things such as checks.
If you want to manage `SubAccounts`, you can get the ID for that subaccount under `Account Settings -> SubAccounts`,
and the ID is next to the name.
This document does not contain all the capabilities provided by this package.
=== Verify API Token
Verify if your API token is valid. Returns `true` or `false`.
[source,elixir]
----
token = System.fetch_env!("TOKEN")
NodePing.token_valid?(token)
----
== Checks
=== Get Checks
Get checks on your NodePing account via the `NodePing.Checks.get_checks` module.
[source,elixir]
----
token = System.fetch_env!("TOKEN")
{:ok, result} = NodePing.Checks.get_checks(token)
----
You can also get checks that meet certain conditions such as:
* passing - `NodePing.Checks.get_passing_checks`
* failing - `NodePing.Checks.get_failing_checks`
* disabled - `NodePing.Checks.get_disabled_checks`
* last result - `NodePing.Checks.get_last_result`
==== Get By ID
Get a single check by providing its ID
[source,elixir]
----
token = System.fetch_env!("TOKEN")
id = "201205050153W2Q4C-0J2HSIRF"
{:ok, result} = NodePing.Checks.get_by_id(token, id)
----
=== Find Checks
There are functions in the `NodePing.Checks` module called `find_by_id` and `find_by_state` which
accepts a result from `NodePing.Checks.get_checks` and lets you search by ID in the result or for
passing/failing checks. Each time you use these functions, they do not make a call to the API.
=== Create a Check
Create checks on your NodePing account via `NodePing.Checks.create_check`.
In this example a PING check is created and pointed at 8.8.8.8
[source,elixir]
----
token = System.fetch_env!("TOKEN")
checktype = NodePing.Checktypes.Ping
target = "8.8.8.8"
args = %{label: "my label", target: target, interval: 1, enabled: true}
{:ok, result} = NodePing.Checks.create_check(token, checktype, args)
----