summaryrefslogtreecommitdiff
path: root/lib/pleroma/object.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/object.ex')
-rw-r--r--lib/pleroma/object.ex22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/pleroma/object.ex b/lib/pleroma/object.ex
index a893f2c1a..670ab8743 100644
--- a/lib/pleroma/object.ex
+++ b/lib/pleroma/object.ex
@@ -445,4 +445,26 @@ defmodule Pleroma.Object do
"orderedItems" => []
}
end
+
+ def maybe_update_history(updated_object, orig_object_data, updated) do
+ if not updated do
+ updated_object
+ else
+ # Put edit history
+ # Note that we may have got the edit history by first fetching the object
+ history = Object.history_for(orig_object_data)
+
+ latest_history_item =
+ orig_object_data
+ |> Map.drop(["id", "formerRepresentations"])
+
+ new_history =
+ history
+ |> Map.put("orderedItems", [latest_history_item | history["orderedItems"]])
+ |> Map.put("totalItems", history["totalItems"] + 1)
+
+ updated_object
+ |> Map.put("formerRepresentations", new_history)
+ end
+ end
end