Filter logs by date
This commit is contained in:
parent
ba5e14be05
commit
5e4fde1d3d
4 changed files with 89 additions and 6 deletions
|
|
@ -14,13 +14,46 @@ defmodule Pleroma.ModerationLog do
|
|||
timestamps()
|
||||
end
|
||||
|
||||
def get_all(page, page_size) do
|
||||
def get_all(params) do
|
||||
params
|
||||
|> get_all_query()
|
||||
|> maybe_filter_by_date(params)
|
||||
|> Repo.all()
|
||||
end
|
||||
|
||||
defp maybe_filter_by_date(query, %{start_date: nil, end_date: nil}), do: query
|
||||
|
||||
defp maybe_filter_by_date(query, %{start_date: start_date, end_date: nil}) do
|
||||
from(q in query,
|
||||
where: q.inserted_at >= ^parse_datetime(start_date)
|
||||
)
|
||||
end
|
||||
|
||||
defp maybe_filter_by_date(query, %{start_date: nil, end_date: end_date}) do
|
||||
from(q in query,
|
||||
where: q.inserted_at <= ^parse_datetime(end_date)
|
||||
)
|
||||
end
|
||||
|
||||
defp maybe_filter_by_date(query, %{start_date: start_date, end_date: end_date}) do
|
||||
from(q in query,
|
||||
where: q.inserted_at >= ^parse_datetime(start_date),
|
||||
where: q.inserted_at <= ^parse_datetime(end_date)
|
||||
)
|
||||
end
|
||||
|
||||
defp get_all_query(%{page: page, page_size: page_size}) do
|
||||
from(q in __MODULE__,
|
||||
order_by: [desc: q.inserted_at],
|
||||
limit: ^page_size,
|
||||
offset: ^((page - 1) * page_size)
|
||||
)
|
||||
|> Repo.all()
|
||||
end
|
||||
|
||||
defp parse_datetime(datetime) do
|
||||
{:ok, parsed_datetime, _} = DateTime.from_iso8601(datetime)
|
||||
|
||||
parsed_datetime
|
||||
end
|
||||
|
||||
def insert_log(%{
|
||||
|
|
|
|||
|
|
@ -318,9 +318,7 @@ defmodule Pleroma.User.Info do
|
|||
name_limit = Pleroma.Config.get([:instance, :account_field_name_length], 255)
|
||||
value_limit = Pleroma.Config.get([:instance, :account_field_value_length], 255)
|
||||
|
||||
is_binary(name) &&
|
||||
is_binary(value) &&
|
||||
String.length(name) <= name_limit &&
|
||||
is_binary(name) && is_binary(value) && String.length(name) <= name_limit &&
|
||||
String.length(value) <= value_limit
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -539,7 +539,13 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do
|
|||
def list_log(conn, params) do
|
||||
{page, page_size} = page_params(params)
|
||||
|
||||
log = ModerationLog.get_all(page, page_size)
|
||||
log =
|
||||
ModerationLog.get_all(%{
|
||||
page: page,
|
||||
page_size: page_size,
|
||||
start_date: params["start_date"],
|
||||
end_date: params["end_date"]
|
||||
})
|
||||
|
||||
conn
|
||||
|> put_view(ModerationLogView)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue