· 9 years ago · Dec 09, 2016, 08:06 PM
1defmodule Foo
2 defp config do
3 with cfg when is_list(cfg) <- Keyword.get(Shippex.config, :ups, {:error, :not_found}),
4
5 sk <- Keyword.get(cfg, :secret_key, {:error, :not_found, :secret_key}),
6 sn <- Keyword.get(cfg, :shipper_number, {:error, :not_found, :shipper_number}),
7 un <- Keyword.get(cfg, :username, {:error, :not_found, :username}),
8 pw <- Keyword.get(cfg, :password, {:error, :not_found, :password}) do
9
10 %{
11 username: un,
12 password: pw,
13 secret_key: sk,
14 shipper_number: sn
15 }
16 else
17 {:error, :not_found, token} -> raise Shippex.InvalidConfigError,
18 message: "UPS config key missing: #{token}"
19
20 {:error, :not_found} -> raise Shippex.InvalidConfigError,
21 message: "UPS config is either invalid or not found."
22 end
23 end
24end