Packages

Mongo Agile Library for Elixir, with a micro-language integrated query

Current section

Files

Jump to
mongo_agile lib layers controller mongo_agile_controller.ex
Raw

lib/layers/controller/mongo_agile_controller.ex

defmodule MongoAgile.Controller do
@moduledoc false
alias MongoAgile.Controller.ApiQueries
defmacro __using__(opts) do
collection = Keyword.get(opts, :collection)
pid_mongo = Keyword.get(opts, :pid_mongo)
flag_install_api = Keyword.get(opts, :install_api)
[
build_base(collection, pid_mongo),
ApiQueries.install_api(flag_install_api)
]
|> List.flatten()
end
defp build_base(collection, pid_mongo) do
quote bind_quoted: [
collection: collection,
pid_mongo: pid_mongo]
do
use MongoAgile.BuilderQueries,
collection: collection,
pid_mongo: pid_mongo
defdelegate run_query(query),
to: MongoAgile.Queries.AgilQuery
end
end
end