aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/activity.ex
blob: d77c8899749a7dd16e568829e3a77340392afa31 (plain)
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
defmodule Pleroma.Activity do
  use Ecto.Schema
  alias Pleroma.{Repo, Activity}
  import Ecto.Query

  schema "activities" do
    field :data, :map
    field :local, :boolean, default: true

    timestamps()
  end

  def get_by_ap_id(ap_id) do
    Repo.one(from activity in Activity,
      where: fragment("? @> ?", activity.data, ^%{id: ap_id}))
  end

  def all_by_object_ap_id(ap_id) do
    Repo.all(from activity in Activity,
      where: fragment("? @> ?", activity.data, ^%{object: %{id: ap_id}}))
  end

  def get_create_activity_by_object_ap_id(ap_id) do
    Repo.one(from activity in Activity,
      where: fragment("? @> ?", activity.data, ^%{type: "Create", object: %{id: ap_id}}))
  end
end