actualizaciones y logs
This commit is contained in:
parent
64560ac7e9
commit
7722dbad00
@ -1,6 +1,7 @@
|
|||||||
defmodule Api.Studies do
|
defmodule Api.Studies do
|
||||||
import Ecto.Query
|
import Ecto.Query
|
||||||
alias Api.Repo
|
alias Api.Repo
|
||||||
|
require Logger
|
||||||
|
|
||||||
def studies_sql_query(filters) do
|
def studies_sql_query(filters) do
|
||||||
customfilter =
|
customfilter =
|
||||||
@ -9,7 +10,8 @@ defmodule Api.Studies do
|
|||||||
"" -> dynamic([_], true)
|
"" -> dynamic([_], true)
|
||||||
expr ->
|
expr ->
|
||||||
case ExpressionParser.parse(expr) do
|
case ExpressionParser.parse(expr) do
|
||||||
{:ok, ast} -> ExpressionToEcto.to_dynamic(ast)
|
{:ok, ast} ->
|
||||||
|
ExpressionToEcto.to_dynamic(ast)
|
||||||
{:error, _reason} -> raise "Error al parsear customfilter"
|
{:error, _reason} -> raise "Error al parsear customfilter"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -18,7 +20,9 @@ defmodule Api.Studies do
|
|||||||
size = filters["size"] || 24
|
size = filters["size"] || 24
|
||||||
|
|
||||||
filter = filters["filter"] || []
|
filter = filters["filter"] || []
|
||||||
sort = filters["sort"] || [%{"dir" => "desc", "field" => "studydate"}]
|
sort = filters["sort"] || [%{"dir" => "desc", "field" => "idstudy"}]
|
||||||
|
|
||||||
|
Logger.info("sort -> #{inspect(sort)}")
|
||||||
|
|
||||||
# Construcción de condiciones de filtro dinámicas
|
# Construcción de condiciones de filtro dinámicas
|
||||||
filter_conditions =
|
filter_conditions =
|
||||||
@ -91,6 +95,8 @@ defmodule Api.Studies do
|
|||||||
{direction, field}
|
{direction, field}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
Logger.info("sort_conditions --> #{inspect(sort_conditions)}")
|
||||||
|
|
||||||
combined_filter =
|
combined_filter =
|
||||||
dynamic([q], ^filter_conditions and ^customfilter)
|
dynamic([q], ^filter_conditions and ^customfilter)
|
||||||
|
|
||||||
|
@ -141,7 +141,7 @@ defmodule Api.EmailToSendContext do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def get_next_email() do
|
def get_next_email() do
|
||||||
one_day_ago = NaiveDateTime.utc_now() |> NaiveDateTime.add(-86400, :second)
|
# one_day_ago = NaiveDateTime.utc_now() |> NaiveDateTime.add(-86400, :second)
|
||||||
|
|
||||||
from(
|
from(
|
||||||
e in Emailtosend,
|
e in Emailtosend,
|
||||||
@ -161,8 +161,8 @@ defmodule Api.EmailToSendContext do
|
|||||||
e.hasreport == true and
|
e.hasreport == true and
|
||||||
e.sent != true and
|
e.sent != true and
|
||||||
e.retries < 10
|
e.retries < 10
|
||||||
)
|
),
|
||||||
and e.registered >= ^one_day_ago,
|
# and e.registered >= ^one_day_ago,
|
||||||
limit: 1,
|
limit: 1,
|
||||||
select: %{
|
select: %{
|
||||||
idemailtosend: e.idemailtosend,
|
idemailtosend: e.idemailtosend,
|
||||||
|
@ -48,11 +48,20 @@ defmodule ExpressionToEcto do
|
|||||||
end
|
end
|
||||||
|
|
||||||
# IN
|
# IN
|
||||||
defp build_dynamic({:comparison, [{:field, field}, :in, {:list, vals}]}) do
|
defp build_dynamic({:comparison, [{:field, field}, :in, {:list, vals}]}) when is_list(vals) do
|
||||||
field_atom = String.to_atom(field)
|
field_atom = String.to_atom(field)
|
||||||
dynamic([q], field(q, ^field_atom) in ^vals)
|
|
||||||
|
parsed_vals =
|
||||||
|
Enum.map(vals, fn
|
||||||
|
{:string, val} -> val
|
||||||
|
{:number, val} -> val
|
||||||
|
other -> raise "Tipo de dato no soportado en IN: #{inspect(other)}"
|
||||||
|
end)
|
||||||
|
|
||||||
|
dynamic([q], field(q, ^field_atom) in ^parsed_vals)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
defp build_dynamic(other) do
|
defp build_dynamic(other) do
|
||||||
raise "AST no soportado o mal formado: #{inspect(other)}"
|
raise "AST no soportado o mal formado: #{inspect(other)}"
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user