store published date for new activities
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
This commit is contained in:
parent
06e2225bf4
commit
0a2c1fef16
3 changed files with 14 additions and 2 deletions
|
@ -121,7 +121,8 @@ defp prepare_activity_params(data) do
|
||||||
"type" => "Create",
|
"type" => "Create",
|
||||||
# Should we seriously keep this attributedTo thing?
|
# Should we seriously keep this attributedTo thing?
|
||||||
"actor" => data["actor"] || data["attributedTo"],
|
"actor" => data["actor"] || data["attributedTo"],
|
||||||
"object" => data
|
"object" => data,
|
||||||
|
"published" => data["published"]
|
||||||
}
|
}
|
||||||
|> Maps.put_if_present("to", data["to"])
|
|> Maps.put_if_present("to", data["to"])
|
||||||
|> Maps.put_if_present("cc", data["cc"])
|
|> Maps.put_if_present("cc", data["cc"])
|
||||||
|
|
|
@ -137,7 +137,8 @@ def persist(object, meta) do
|
||||||
data: object,
|
data: object,
|
||||||
local: local,
|
local: local,
|
||||||
recipients: recipients,
|
recipients: recipients,
|
||||||
actor: object["actor"]
|
actor: object["actor"],
|
||||||
|
published_at: get_published_at(object)
|
||||||
}),
|
}),
|
||||||
# TODO: add tests for expired activities, when Note type will be supported in new pipeline
|
# TODO: add tests for expired activities, when Note type will be supported in new pipeline
|
||||||
{:ok, _} <- maybe_create_activity_expiration(activity) do
|
{:ok, _} <- maybe_create_activity_expiration(activity) do
|
||||||
|
@ -145,6 +146,15 @@ def persist(object, meta) do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
defp get_published_at(object) do
|
||||||
|
with date <- Map.get(object, "published", NaiveDateTime.utc_now()),
|
||||||
|
{:ok, casted_date} <- Ecto.Type.cast(:naive_datetime, date) do
|
||||||
|
casted_date
|
||||||
|
else
|
||||||
|
_ -> nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
@spec insert(map(), boolean(), boolean(), boolean()) :: {:ok, Activity.t()} | {:error, any()}
|
@spec insert(map(), boolean(), boolean(), boolean()) :: {:ok, Activity.t()} | {:error, any()}
|
||||||
def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when is_map(map) do
|
def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when is_map(map) do
|
||||||
with nil <- Activity.normalize(map),
|
with nil <- Activity.normalize(map),
|
||||||
|
|
|
@ -28,6 +28,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateGenericValidator do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
field(:published, ObjectValidators.DateTime)
|
||||||
field(:expires_at, ObjectValidators.DateTime)
|
field(:expires_at, ObjectValidators.DateTime)
|
||||||
|
|
||||||
# Should be moved to object, done for CommonAPI.Utils.make_context
|
# Should be moved to object, done for CommonAPI.Utils.make_context
|
||||||
|
|
Loading…
Reference in a new issue