Packages

An Elixir Library for Yodlee's v1.0 API

Current section

Files

Jump to
yodlee_elixir lib yodlee provider.ex
Raw

lib/yodlee/provider.ex

defmodule Yodlee.Provider do
@moduledoc """
Functions for `providers` endpoint.
"""
import Yodlee
alias Yodlee.Utils
defstruct id: nil, auth_type: nil, base_url: nil, container_names: [],
favicon: nil, forget_password_url: nil,
is_auto_refresh_enabled: nil, last_modified: nil,
login_url: nil, logo: nil, name: nil, status: nil
@type t :: %__MODULE__{id: integer,
auth_type: String.t,
base_url: String.t,
container_names: [String.t],
favicon: String.t,
forget_password_url: String.t,
is_auto_refresh_enabled: boolean,
last_modified: String.t,
login_url: String.t,
logo: String.t,
name: String.t,
status: String.t
}
@type user_session :: String.t
@type error :: Yodlee.Error.t | HTTPoison.Error.t
@endpoint "providers"
@doc """
Searches providers in User session.
```
params = %{
name: "Wells Fargo"
}
```
"""
@spec search(user_session, map) :: {:ok, [Yodlee.Provider.t]} | {:error, error}
def search(session, params \\ %{}) do
endpoint =
case Map.keys(params) do
[] -> @endpoint
_ -> "#{@endpoint}?" <> Utils.encode_params(params)
end
make_request_in_session(:get, endpoint, session)
|> Utils.handle_resp(:provider)
end
@doc """
Gets provider by id.
"""
@spec get(user_session, String.t | integer) :: {:ok, Yodlee.Provider.t} | {:error, error}
def get(session, id) do
endpoint = "#{@endpoint}/#{id}"
make_request_in_session(:get, endpoint, session)
|> Utils.handle_resp(:provider)
end
end