Packages

An Elixir client for Consul's HTTP API

Current section

Files

Jump to
exconsul lib consul handler kv.ex
Raw

lib/consul/handler/kv.ex

#
# The MIT License (MIT)
#
# Copyright (c) 2014-2015 Undead Labs, LLC
#
defmodule Consul.Handler.Kv do
use Consul.Handler.Behaviour
def handle(%{status_code: 200, body: body} = response) do
{:ok, %{response | body: decode_body(body)}}
end
def handle(response), do: super(response)
#
# Private API
#
defp decode_body(items) when is_list(items) do
Enum.map(items, &decode_body/1)
end
defp decode_body(%{"Value" => value} = item) when is_binary(value) do
%{item | "Value" => :base64.decode(value)}
end
defp decode_body(item), do: item
end