logo

pleroma

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

pleroma_status_operation.ex (1414B)


  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.Web.ApiSpec.PleromaStatusOperation do
  5. alias OpenApiSpex.Operation
  6. alias Pleroma.Web.ApiSpec.Schemas.ApiError
  7. alias Pleroma.Web.ApiSpec.Schemas.FlakeID
  8. alias Pleroma.Web.ApiSpec.StatusOperation
  9. import Pleroma.Web.ApiSpec.Helpers
  10. def open_api_operation(action) do
  11. operation = String.to_existing_atom("#{action}_operation")
  12. apply(__MODULE__, operation, [])
  13. end
  14. def quotes_operation do
  15. %Operation{
  16. tags: ["Retrieve status information"],
  17. summary: "Quoted by",
  18. description: "View quotes for a given status",
  19. operationId: "PleromaAPI.StatusController.quotes",
  20. parameters: [id_param() | pagination_params()],
  21. security: [%{"oAuth" => ["read:statuses"]}],
  22. responses: %{
  23. 200 =>
  24. Operation.response(
  25. "Array of Status",
  26. "application/json",
  27. StatusOperation.array_of_statuses()
  28. ),
  29. 403 => Operation.response("Forbidden", "application/json", ApiError),
  30. 404 => Operation.response("Not Found", "application/json", ApiError)
  31. }
  32. }
  33. end
  34. def id_param do
  35. Operation.parameter(:id, :path, FlakeID.schema(), "Status ID",
  36. example: "9umDrYheeY451cQnEe",
  37. required: true
  38. )
  39. end
  40. end