Packages

phoenix_kit

1.1.0
1.7.210 1.7.209 1.7.208 1.7.207 1.7.206 1.7.205 1.7.204 1.7.203 1.7.202 1.7.201 1.7.200 1.7.199 1.7.198 1.7.197 1.7.196 1.7.194 1.7.193 1.7.192 1.7.191 1.7.190 1.7.189 1.7.187 1.7.186 1.7.185 1.7.184 1.7.183 1.7.182 1.7.181 1.7.180 1.7.179 1.7.178 1.7.177 1.7.176 1.7.175 1.7.174 1.7.173 1.7.172 1.7.171 1.7.170 1.7.169 1.7.168 1.7.167 1.7.166 1.7.165 1.7.164 1.7.162 1.7.161 1.7.160 1.7.159 1.7.157 1.7.156 1.7.155 1.7.154 1.7.153 1.7.152 1.7.151 1.7.150 1.7.149 1.7.146 1.7.145 1.7.144 1.7.143 1.7.138 1.7.133 1.7.132 1.7.131 1.7.130 1.7.128 1.7.126 1.7.125 1.7.121 1.7.120 1.7.119 1.7.118 1.7.117 1.7.116 1.7.115 1.7.114 1.7.113 1.7.112 1.7.111 1.7.110 1.7.109 1.7.108 1.7.107 1.7.106 1.7.105 1.7.104 1.7.103 1.7.102 1.7.101 1.7.100 1.7.99 1.7.98 1.7.97 1.7.96 1.7.95 1.7.94 1.7.93 1.7.92 1.7.91 1.7.90 1.7.89 1.7.88 1.7.87 1.7.86 1.7.85 1.7.84 1.7.83 1.7.82 1.7.81 1.7.80 1.7.79 1.7.78 1.7.77 1.7.76 1.7.75 1.7.74 1.7.71 1.7.70 1.7.69 1.7.66 1.7.65 1.7.64 1.7.63 1.7.62 1.7.61 1.7.59 1.7.58 1.7.57 1.7.56 1.7.55 1.7.54 1.7.53 1.7.52 1.7.51 1.7.49 1.7.44 1.7.43 1.7.42 1.7.41 1.7.39 1.7.38 1.7.37 1.7.36 1.7.34 1.7.33 1.7.31 1.7.30 1.7.29 1.7.28 1.7.27 1.7.26 1.7.25 1.7.24 1.7.23 1.7.22 1.7.21 1.7.20 1.7.19 1.7.18 1.7.17 1.7.16 1.7.15 1.7.14 1.7.13 1.7.12 1.7.11 1.7.10 1.7.9 1.7.8 1.7.7 1.7.6 1.7.5 1.7.4 1.7.3 1.7.2 1.7.1 1.7.0 1.6.20 1.6.19 1.6.18 1.6.17 1.6.16 1.6.15 1.6.14 1.6.13 1.6.12 1.6.11 1.6.10 1.6.9 1.6.8 1.6.7 1.6.6 1.6.5 1.6.4 1.6.3 1.5.2 1.5.1 1.5.0 1.4.9 1.4.8 1.4.7 1.4.6 1.4.5 1.4.4 1.4.3 1.4.2 1.4.1 1.4.0 1.3.2 1.3.1 1.3.0 1.2.10 1.2.9 1.2.8 1.2.7 1.2.5 1.2.4 1.2.2 1.2.1 1.2.0 1.1.0 1.0.0

A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more

Current section

Files

Jump to
phoenix_kit lib phoenix_kit repo_helper.ex
Raw

lib/phoenix_kit/repo_helper.ex

defmodule PhoenixKit.RepoHelper do
@moduledoc """
Helper for dynamically resolving the repository to use.
This module provides functions to get the appropriate repository
based on configuration. It will use the configured repo from
the parent application if available, otherwise fall back to
the built-in PhoenixKit.Repo for development/testing.
"""
@doc """
Gets the repository module to use.
Expects repo to be configured via Application.get_env(:phoenix_kit, :repo).
Raises an error if no repo is configured.
"""
def repo do
case Application.get_env(:phoenix_kit, :repo) do
nil ->
raise """
No repository configured for PhoenixKit.
Please configure a repository in your application:
config :phoenix_kit, repo: MyApp.Repo
"""
repo when is_atom(repo) ->
repo
end
end
@doc """
Delegates to the configured repo's get_by function.
"""
def get_by(queryable, clauses, opts \\ []) do
repo().get_by(queryable, clauses, opts)
end
@doc """
Delegates to the configured repo's get function.
"""
def get(queryable, id, opts \\ []) do
repo().get(queryable, id, opts)
end
@doc """
Delegates to the configured repo's get! function.
"""
def get!(queryable, id, opts \\ []) do
repo().get!(queryable, id, opts)
end
@doc """
Delegates to the configured repo's all function.
"""
def all(queryable, opts \\ []) do
repo().all(queryable, opts)
end
@doc """
Delegates to the configured repo's one function.
"""
def one(queryable, opts \\ []) do
repo().one(queryable, opts)
end
@doc """
Delegates to the configured repo's insert function.
"""
def insert(struct_or_changeset, opts \\ []) do
repo().insert(struct_or_changeset, opts)
end
@doc """
Delegates to the configured repo's insert! function.
"""
def insert!(struct_or_changeset, opts \\ []) do
repo().insert!(struct_or_changeset, opts)
end
@doc """
Delegates to the configured repo's update function.
"""
def update(changeset, opts \\ []) do
repo().update(changeset, opts)
end
@doc """
Delegates to the configured repo's delete function.
"""
def delete(struct_or_changeset, opts \\ []) do
repo().delete(struct_or_changeset, opts)
end
@doc """
Delegates to the configured repo's delete_all function.
"""
def delete_all(queryable, opts \\ []) do
repo().delete_all(queryable, opts)
end
@doc """
Delegates to the configured repo's exists? function.
"""
def exists?(queryable, opts \\ []) do
repo().exists?(queryable, opts)
end
@doc """
Delegates to the configured repo's aggregate function.
"""
def aggregate(queryable, aggregate, field, opts \\ []) do
repo().aggregate(queryable, aggregate, field, opts)
end
@doc """
Delegates to the configured repo's query function.
"""
def query(sql, params \\ [], opts \\ []) do
repo().query(sql, params, opts)
end
@doc """
Delegates to the configured repo's query! function.
"""
def query!(sql, params \\ [], opts \\ []) do
repo().query!(sql, params, opts)
end
@doc """
Delegates to the configured repo's transaction function.
"""
def transaction(fun_or_multi, opts \\ []) do
repo().transaction(fun_or_multi, opts)
end
@doc """
Delegates to the configured repo's preload function.
"""
def preload(struct_or_structs, preloads, opts \\ []) do
repo().preload(struct_or_structs, preloads, opts)
end
end