Files
wanderer/lib/wanderer_app/map/map_audit.ex
T

50 lines
1.4 KiB
Elixir

defmodule WandererApp.Map.Audit do
@moduledoc """
Manager map subscription plans
This module now delegates to SecurityAudit for consistency.
It maintains backward compatibility while using the centralized audit system.
"""
require Ash.Query
require Logger
@week_seconds :timer.hours(24 * 7)
@month_seconds @week_seconds * 4
@audit_expired_seconds @month_seconds * 3
def track_map_subscription_event(event_type, metadata) do
mapped_type =
case event_type do
"subscription.created" -> :subscription_created
"subscription.updated" -> :subscription_updated
"subscription.deleted" -> :subscription_deleted
_ -> :subscription_unknown
end
track_map_event(mapped_type, metadata)
end
def archive() do
Logger.info("Start map audit arhiving...")
WandererApp.Api.UserActivity
|> Ash.Query.filter(inserted_at: [less_than: get_expired_at()])
|> Ash.bulk_destroy!(:archive, %{}, batch_size: 100)
Logger.info(fn -> "Audit arhived" end)
:ok
end
defdelegate get_map_activity_query(map_id, period, activity),
to: WandererApp.SecurityAudit
defdelegate track_acl_event(event_type, metadata),
to: WandererApp.SecurityAudit
defdelegate track_map_event(event_type, metadata),
to: WandererApp.SecurityAudit
defp get_expired_at(), do: DateTime.utc_now() |> DateTime.add(-@audit_expired_seconds, :second)
end