summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gleason <alex@alexgleason.me>2021-12-18 16:33:59 -0500
committerAlex Gleason <alex@alexgleason.me>2021-12-18 16:33:59 -0500
commit0dc132a543f1d96ab9892e6638596e7120a5254f (patch)
treef1cb67abc406d961ccceb5a600cc74e0fe2a81f5
parent745e9814dee20c9e8e4238349844ba4b985e36ca (diff)
Let "context_id" be a string
-rw-r--r--lib/pleroma/web/activity_pub/object_validators/common_fields.ex2
-rw-r--r--lib/pleroma/web/api_spec/schemas/status.ex4
-rw-r--r--lib/pleroma/web/mastodon_api/views/status_view.ex14
3 files changed, 14 insertions, 6 deletions
diff --git a/lib/pleroma/web/activity_pub/object_validators/common_fields.ex b/lib/pleroma/web/activity_pub/object_validators/common_fields.ex
index 872f80ec3..cb1f4e144 100644
--- a/lib/pleroma/web/activity_pub/object_validators/common_fields.ex
+++ b/lib/pleroma/web/activity_pub/object_validators/common_fields.ex
@@ -52,7 +52,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonFields do
field(:context, :string)
# short identifier for PleromaFE to group statuses by context
- field(:context_id, :integer)
+ field(:context_id, :string)
field(:sensitive, :boolean, default: false)
field(:replies_count, :integer, default: 0)
diff --git a/lib/pleroma/web/api_spec/schemas/status.ex b/lib/pleroma/web/api_spec/schemas/status.ex
index 3d042dc19..a12777068 100644
--- a/lib/pleroma/web/api_spec/schemas/status.ex
+++ b/lib/pleroma/web/api_spec/schemas/status.ex
@@ -143,7 +143,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
"A map consisting of alternate representations of the `content` property with the key being it's mimetype. Currently the only alternate representation supported is `text/plain`"
},
conversation_id: %Schema{
- type: :integer,
+ type: :string,
description: "The ID of the AP context the status is associated with (if any)"
},
direct_conversation_id: %Schema{
@@ -317,7 +317,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Status do
"pinned" => false,
"pleroma" => %{
"content" => %{"text/plain" => "foobar"},
- "conversation_id" => 345_972,
+ "conversation_id" => "AEXFhY7X4zd8hZK8oK",
"direct_conversation_id" => nil,
"emoji_reactions" => [],
"expires_at" => nil,
diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex
index 463f34198..ce350ad23 100644
--- a/lib/pleroma/web/mastodon_api/views/status_view.ex
+++ b/lib/pleroma/web/mastodon_api/views/status_view.ex
@@ -57,11 +57,19 @@ defmodule Pleroma.Web.MastodonAPI.StatusView do
end)
end
- defp get_context_id(%{data: %{"context_id" => context_id}}) when not is_nil(context_id),
+ defp get_context_id(%{data: %{"context_id" => context_id}}) when is_binary(context_id),
do: context_id
- defp get_context_id(%{data: %{"context" => context}}) when is_binary(context),
- do: Utils.context_to_conversation_id(context)
+ defp get_context_id(%{data: %{"context_id" => context_id}}) when is_integer(context_id),
+ do: to_string(context_id)
+
+ defp get_context_id(%{data: %{"context" => context}}) when is_binary(context) do
+ case Utils.context_to_conversation_id(context) do
+ id when is_binary(id) -> id
+ id when is_integer(id) -> to_string(id)
+ _ -> nil
+ end
+ end
defp get_context_id(_), do: nil