defmodule LoopsEx do @moduledoc """ Elixir SDK for the Loops API (loops.so). ## Modules * `LoopsEx.ApiKey` – test API key * `LoopsEx.Contacts` – manage contacts * `LoopsEx.ContactProperties` – manage contact properties * `LoopsEx.MailingLists` – view mailing lists * `LoopsEx.Events` – trigger events * `LoopsEx.TransactionalEmails` – send/list transactional emails ## Usage ### Configuration Add the following to your `config/config.exs`: ```elixir config :loops_ex, api_key: "your_api_key" ``` ### API Key Test ```elixir LoopsEx.ApiKey.test() ``` ## Examples iex> LoopsEx.ApiKey.test() {:ok, %{"success" => true, "teamName" => "MyTeam"}} """ # Convenience delegation defdelegate api_key_test(), to: LoopsEx.ApiKey, as: :test defdelegate create_contact(params), to: LoopsEx.Contacts, as: :create defdelegate update_contact(params), to: LoopsEx.Contacts, as: :update defdelegate find_contact(params), to: LoopsEx.Contacts, as: :find defdelegate delete_contact(params), to: LoopsEx.Contacts, as: :delete defdelegate create_property(params), to: LoopsEx.ContactProperties, as: :create defdelegate list_properties(params \\ %{}), to: LoopsEx.ContactProperties, as: :list defdelegate list_mailing_lists(), to: LoopsEx.MailingLists, as: :list defdelegate send_event(params), to: LoopsEx.Events, as: :send_event defdelegate send_transactional(params), to: LoopsEx.TransactionalEmails, as: :send_transactional defdelegate list_transactional(params \\ %{}), to: LoopsEx.TransactionalEmails, as: :list @doc """ Hello world. ## Examples iex> LoopsEx.hello() :world """ def hello do :world end end