This commit is contained in:
@@ -1,6 +1,26 @@
|
||||
defmodule ElixirAi.Data.DbHelpers do
|
||||
require Logger
|
||||
@get_named_param ~r/\$\((\w+)\)/
|
||||
|
||||
def run_sql(sql, params, topic) do
|
||||
{sql, params} = named_params_to_positional_params(sql, params)
|
||||
|
||||
try do
|
||||
Ecto.Adapters.SQL.query!(ElixirAi.Repo, sql, params)
|
||||
rescue
|
||||
exception ->
|
||||
Logger.error("Database error: #{Exception.message(exception)}")
|
||||
|
||||
Phoenix.PubSub.broadcast(
|
||||
ElixirAi.PubSub,
|
||||
topic,
|
||||
{:db_error, Exception.message(exception)}
|
||||
)
|
||||
|
||||
{:error, :db_error}
|
||||
end
|
||||
end
|
||||
|
||||
def named_params_to_positional_params(query, params) do
|
||||
param_occurrences = Regex.scan(@get_named_param, query)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user