File size: 652 Bytes
936b397
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
defmodule Plausible.Audit do
  @moduledoc """
  Primary persistent Audit Entry interface
  """

  import Ecto.Query

  defdelegate encode(term, opts \\ []), to: Plausible.Audit.Encoder
  defdelegate set_context(term), to: Plausible.Audit.Entry

  def list_entries(attrs) do
    attrs
    |> entries_query()
    |> Plausible.Repo.all()
  end

  def list_entries_paginated(attrs, params \\ %{}) do
    attrs
    |> entries_query()
    |> Plausible.Pagination.paginate(params, cursor_fields: [{:datetime, :desc}])
  end

  defp entries_query(attrs) do
    from ae in Plausible.Audit.Entry,
      where: ^attrs,
      order_by: [desc: :datetime]
  end
end