Current section
Files
Jump to
Current section
Files
lib/couchdb_auth.ex
defmodule CouchDB do
use Tesla
import CouchDB.Environment
#import CouchDB.HTTP
plug Tesla.Middleware.BaseUrl, base_url()
plug Tesla.Middleware.Headers, %{"User-Agent" => "tesla"}
#plug Tesla.Middleware.JSON
plug Tesla.Middleware.DecodeJson
plug Tesla.Middleware.EncodeJson
adapter Tesla.Adapter.Hackney
def client(interface \\ :base, opts \\ %{}) do
url = case interface do
:backend -> backend_url()
_ -> base_url()
end
opts = Map.merge(%{
username: server_admin()[:user],
password: server_admin()[:password],
url: url},
opts)
IO.inspect opts
case auth_type() do
:basic ->
Tesla.build_client [{Tesla.Middleware.CouchDB.BasicAuth, opts}]
:cookie ->
Tesla.build_client [{Tesla.Middleware.CouchDB.CookieAuth, opts}]
:oauth ->
Tesla.build_client [{Tesla.Middleware.CouchDB.OAuth, Map.merge(oauth_creds(), %{url: url})}]
_ ->
{}
end
end
end