logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

report_note.ex (1231B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.ReportNote do
  5. use Ecto.Schema
  6. import Ecto.Changeset
  7. import Ecto.Query
  8. alias Pleroma.Activity
  9. alias Pleroma.Repo
  10. alias Pleroma.ReportNote
  11. alias Pleroma.User
  12. @type t :: %__MODULE__{}
  13. schema "report_notes" do
  14. field(:content, :string)
  15. belongs_to(:user, User, type: FlakeId.Ecto.CompatType)
  16. belongs_to(:activity, Activity, type: FlakeId.Ecto.CompatType)
  17. timestamps()
  18. end
  19. @spec create(Ecto.UUID.t(), Ecto.UUID.t(), String.t()) ::
  20. {:ok, ReportNote.t()} | {:error, Ecto.Changeset.t()}
  21. def create(user_id, activity_id, content) do
  22. attrs = %{
  23. user_id: user_id,
  24. activity_id: activity_id,
  25. content: content
  26. }
  27. %ReportNote{}
  28. |> cast(attrs, [:user_id, :activity_id, :content])
  29. |> validate_required([:user_id, :activity_id, :content])
  30. |> Repo.insert()
  31. end
  32. @spec destroy(Ecto.UUID.t()) ::
  33. {:ok, ReportNote.t()} | {:error, Ecto.Changeset.t()}
  34. def destroy(id) do
  35. from(r in ReportNote, where: r.id == ^id)
  36. |> Repo.one()
  37. |> Repo.delete()
  38. end
  39. end