Packages

Azure Cosmos DB driver for Elixir

Current section

Files

Jump to
sagan lib sagan.ex
Raw

lib/sagan.ex

defmodule Sagan do
@moduledoc """
Azure Cosmos DB Driver for Elixir
Installation
-------------
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `sagan` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:sagan, "~> 0.1.0"}]
end
# in your config.exs
config :sagan,
hostname: "host.documents.azure.com",
database: "your-database",
name: :mongo, # to name the process
username: "your-username",
password: "your-key",
port: 10255
```
Provides and simplifies all the functions of [MongoDB](https://hexdocs.pm/mongodb/Mongo.html)
"""
alias Sagan.API
@database Application.get_env(:sagan, :database)
@conn Application.get_env(:sagan, :name)
@default_opts [pool: DBConnection.Poolboy]
def create_document(collection, document) do
"dbs/#{@database}/colls/#{collection}/docs"
|> API.post(document)
end
def get_document_by_id(collection, id) do
"dbs/#{@database}/colls/#{collection}/docs/#{id}"
|> API.get()
end
###############################
## MongoDB Wrapper Functions ##
###############################
def aggregate(coll, pipeline, opts \\ []) do
Mongo.aggregate(@conn, coll, pipeline, opts ++ @default_opts)
end
def command(query, opts \\ []) do
Mongo.command(@conn, query, opts ++ @default_opts)
end
def command!(query, opts \\ []) do
Mongo.command!(@conn, query, opts ++ @default_opts)
end
def count(coll, filter, opts \\ []) do
Mongo.count(@conn, coll, filter, opts ++ @default_opts)
end
def count!(coll, filter, opts \\ []) do
Mongo.count!(@conn, coll, filter, opts ++ @default_opts)
end
def delete_many(coll, filter, opts \\ []) do
Mongo.delete_many(@conn, coll, filter, opts ++ @default_opts)
end
def delete_many!(coll, filter, opts \\ []) do
Mongo.delete_many!(@conn, coll, filter, opts ++ @default_opts)
end
def delete_one(coll, filter, opts \\ []) do
Mongo.delete_one(@conn, coll, filter, opts ++ @default_opts)
end
def delete_one!(coll, filter, opts \\ []) do
Mongo.delete_one!(@conn, coll, filter, opts ++ @default_opts)
end
def distinct(coll, field, filter, opts \\ []) do
Mongo.distinct(@conn, coll, field, filter, opts ++ @default_opts)
end
def distinct!(coll, field, filter, opts \\ []) do
Mongo.distinct!(@conn, coll, field, filter, opts ++ @default_opts)
end
def find(coll, filter, opts \\ []) do
Mongo.find(@conn, coll, filter, opts ++ @default_opts)
end
def find_one(coll, filter, opts \\ []) do
Mongo.find_one(@conn, coll, filter, opts ++ @default_opts)
end
def find_one_and_delete(coll, filter, opts \\ []) do
Mongo.find_one_and_delete(@conn, coll, filter, opts ++ @default_opts)
end
def find_one_and_replace(coll, filter, replacement, opts \\ []) do
Mongo.find_one_and_replace(@conn, coll, filter, replacement, opts ++ @default_opts)
end
def find_one_and_update(coll, filter, update, opts \\ []) do
Mongo.find_one_and_update(@conn, coll, filter, update, opts ++ @default_opts)
end
def insert_many(coll, docs, opts \\ []) do
Mongo.insert_many(@conn, coll, docs, opts ++ @default_opts)
end
def insert_many!(coll, docs, opts \\ []) do
Mongo.insert_many!(@conn, coll, docs, opts ++ @default_opts)
end
def insert_one(coll, doc, opts \\ []) do
Mongo.insert_one(@conn, coll, doc, opts ++ @default_opts)
end
def insert_one!(coll, doc, opts \\ []) do
Mongo.insert_one!(@conn, coll, doc, opts ++ @default_opts)
end
def replace_one(coll, filter, replacement, opts \\ []) do
Mongo.replace_one(@conn, coll, filter, replacement, opts ++ @default_opts)
end
def replace_one!(coll, filter, replacement, opts \\ []) do
Mongo.replace_one!(@conn, coll, filter, replacement, opts ++ @default_opts)
end
def update_many(coll, filter, update, opts \\ []) do
Mongo.update_many(@conn, coll, filter, update, opts ++ @default_opts)
end
def update_many!(coll, filter, update, opts \\ []) do
Mongo.update_many!(@conn, coll, filter, update, opts ++ @default_opts)
end
def update_one(coll, filter, update, opts \\ []) do
Mongo.update_one(@conn, coll, filter, update, opts ++ @default_opts)
end
def update_one!(coll, filter, update, opts \\ []) do
Mongo.update_one!(@conn, coll, filter, update, opts ++ @default_opts)
end
end