- with %Object{
- data: %{
- "actor" => ^actor,
- "id" => object,
- "to" => [recipient],
- "type" => "ChatMessage"
- }
- } = message <- Object.get_by_id(id),
- %Chat{} = chat <- Chat.get(user.id, recipient),
- %Activity{} = activity <- Activity.get_create_by_object_ap_id(object),
- {:ok, _delete} <- CommonAPI.delete(activity.id, user) do
+ with %ChatMessageReference{} = cm_ref <-
+ ChatMessageReference.get_by_id(message_id),
+ ^chat_id <- cm_ref.chat_id |> to_string(),
+ %Chat{user_id: ^user_id} <- Chat.get_by_id(chat_id),
+ {:ok, _} <- remove_or_delete(cm_ref, user) do