CouchdbClient

This module conveniently interfaces/proxies

  • CouchdbClient.Repository
  • CouchdbClient.Database
  • CouchdbClient.Document
  • CouchdbClient.Attachment

to provide easy access to a CouchDB instance. It will collect connection data from Application.get_env(:couchdb_client, options) that you may possibly configure via

config :couchdb_client,
    scheme: "http",
    host:   "127.0.0.1",
    port:   5984,
    name:   "test_database"

in your config/config.exs. Add :couchdb_client to your mix.exs:

def application do
    [applications: [ .., :couchdb_client, ..], .. ]
end

If you don’t want to autostart, issue

CouchdbClient.start name: "test_database", host: "..", ..

Examples

iex> doc = %CouchdbClient.Document{ data: %{ “one” => “two” } } %CouchdbClient.Document{data: %{“one” => “two”}, id: nil, rev: nil}

iex> doc = CouchdbClient.save doc %CouchdbClient.Document{data: %{“_rev” => _REV1, “one” => “two”}, id: _ID, rev: _REV1}

iex> CouchdbClient.delete doc :ok

iex> doc = %CouchdbClient.Document{ id: “test_doc”, data: %{ “one” => “two” } } %CouchdbClient.Document{id: “test_doc”, data: %{“one” => “two”}, id: “test_doc”, rev: nil}

iex> doc = CouchdbClient.save doc %CouchdbClient.Document{data: %{“_rev” => _REV2, “one” => “two”}, id: “test_doc”, rev: _REV2}

Summary

Functions

Adds an attachment, see CouchdbClient.Attachment.attach/3

Returns a list of all documents in db

Changes the database name to use on current CouchDB server

Returns the %CouchdbClient.Database{} stored in Repository Agent

Deletes the document, return :ok

Deletes an attachment, see CouchdbClient.Attachment.attach/3

Fetches an attachment, returns { content, content_type }. See CouchdbClient.Attachment.fetch/3

Performs a HEAD request to CouchDB, returning the revision “rev”

Retrieves general DB information from server

Inserts the document, returns it

Loads a document. Accepts both an id string or a %CouchdbClient.Document struct which must have the id property set

Either inserts or updates the document, returns it

Sets all keys found in data map in document.data

Callback implementation for c::application.start/2

Updates the document, returns it

Functions

add_attachment(document, attachment)

Adds an attachment, see CouchdbClient.Attachment.attach/3

all_docs()

Returns a list of all documents in db

change_db(name)

Changes the database name to use on current CouchDB server

db()

Returns the %CouchdbClient.Database{} stored in Repository Agent

delete(document)

Deletes the document, return :ok

delete_attachment(document, filename)

Deletes an attachment, see CouchdbClient.Attachment.attach/3

fetch_attachment(document, filename)

Fetches an attachment, returns { content, content_type }. See CouchdbClient.Attachment.fetch/3

get_rev(document)

Performs a HEAD request to CouchDB, returning the revision “rev”.

info()

Retrieves general DB information from server

insert(document)

Inserts the document, returns it

load(id)

Loads a document. Accepts both an id string or a %CouchdbClient.Document struct which must have the id property set.

save(document)

Either inserts or updates the document, returns it

set(document, data)

Sets all keys found in data map in document.data

start(type, args)

Callback implementation for c::application.start/2.

start_repo(db_options)
update(document)

Updates the document, returns it