README.md

# ElibomEx

[![Build Status](https://travis-ci.org/Liftitapp/elibom_ex.svg?branch=master)](https://travis-ci.org/Liftitapp/elibom_ex)

Elixir wrapper for delivering and managing your Elibom's API.

## Installation

ElibomEx can be installed from Hex:

```elixir
def deps do
  [{:elibom_ex, "~> 0.1.0"}]
end
```

Or from Github

```elixir
def deps do
  [{:elibom_ex, github: "liftitapp/elibom_ex"}]
end
```

## Configuration

In one of your configuration files, include your Elibom API key, for example:

```elixir
config :elibom_ex, username:  {:system, "ELIBOM_USERNAME"},
                   password: {:system, "ELIBOM_USERNAME"}
```

For security, I recommend that you use environment variables rather than hard
coding your account credentials. If you don't already have an environment
variable manager, you can create a `.env` file in your project with the
following content:

```bash
export ELIBOM_USERNAME=<account email here>
export ELIBOM_PASSWORD=<api token>
```

Then, just be sure to run `source .env` in your shell before compiling your
project.

### Multiple Environments
If you want to use different Twilio credentials for different environments, then
create separate Mix configuration files for each environment. To do this, change
`config/config.exs` to look like this:

```elixir
# config/config.exs

use Mix.Config

# shared configuration for all environments here ...

import_config "#{Mix.env}.exs"
```

Then, create a `config/#{environment_name}.exs` file for each environment. You
can then set the `config :elibom_ex` variables differently in each file.

## Usage

Check the [docs](https://hexdocs.pm/elibom_ex/) for complete usage.

```elixir
# Dispatch a new SMS
ElibomEx.send_sms(%{to: "573140000000", text: "Hi from Elibom"})

# You can also schedule SMS that will be dispatched in the exact date/time specified,
# format must be provided in the yyyy-mm-dd hh:mm format (e.g: 2014-02-1818 19:10)
ElibomEx.send_sms(%{to: "573140000000", text: "Hi from Elibom", scheduleDate: "2014-02-18 19:10"})

# Shows the status of provided SMS
ElibomEx.show_sms("sms_id")

# Show the state of a scheduled SMS
ElibomEx.show_scheduled_sms("scheduled_sms_id")

# Cancel a scheduled SMS
ElibomEx.cancel_scheduled_sms("scheduled_sms_id")

# Consult your account details
ElibomEx.show_account

# Show all the users related with your account. If you need to fetch a specific user data,
# just provide it's Elibom user id.
ElibomEx.show_users
```

### Supported Endpoints

#### Deliveries

- [Send SMS](https://www.elibom.com/developers#enviar).
- [Consult delivery](https://www.elibom.com/developers#consultar).
- [Consult scheduled SMS](https://www.elibom.com/developers#consult-prog).
- [Cancel scheduled SMS](https://www.elibom.com/developers#delete).
- [Send SMS](https://www.elibom.com/developers#enviar).

#### Account

- [Consult account](https://www.elibom.com/developers#consultar-cuenta).
- [Consult users](https://www.elibom.com/developers#consultar-usuarios).
- [Consult user](https://www.elibom.com/developers#consultar-usuario).