Mpx

Elixir wrapper for the Ministry Platform REST API

Installation

If available in Hex, the package can be installed by adding mpx to your list of dependencies in mix.exs:

def deps do
  [
    {:mpx, "~> 0.2.2"}
  ]
end

The only required configuration is the base url of your MP instance:

config :mpx,
  mp_base_url: System.get_env("MP_BASE_URL"),

Running Integration Tests

First create a integration.exs in the config folder. Populate with:

use Mix.Config

config :mpx,
  mp_base_url: System.get_env("MP_BASE_URL"),
  mp_username: "a_real_username",
  mp_password: "a_real_password",
  mp_client_id: "a_real_client_id",
  mp_client_secret: "a_real_client_secret"

Now run

MIX_ENV=integration mix test --only integration

Usage

Currently only a few endpoints are supported:

  • /tables (get and delete)
  • /tables/:id (get)

Set configuration options to authenticate with MP in your config.exs. You can use {:system, "ENV_NAME"} for runtime configuration.

config :mpx,
  mp_base_url: {:system, "MP_HOST"},
  mp_username: System.get_env("MP_USERNAME"),
  mp_password: {:system, "MP_PASSWORD"},
  mp_client_id: {:system, "MP_CLIENT_ID"},
  mp_client_secret: {:system, "MP_CLIENT_SECRET"}

Now call

  {:ok, token} = Mpx.Authentication.authenticate()

to get a reuseable authentication token.

If you prefer not to use elixir configuration to setup you user credentials:

  {:ok, token} = Mpx.Authentication.authenticate(username: "username", password: "password", client_id: "clientid", client_secret: "clientsecret")

See the documentation for more usage details

Development

Install dependencies

mix deps.get

Run application

iex -S mix