activity_serializer.rb 671 B

1234567891011121314151617181920212223242526272829303132333435
  1. # frozen_string_literal: true
  2. class ActivityPub::ActivitySerializer < ActiveModel::Serializer
  3. attributes :id, :type, :actor, :published, :to, :cc
  4. has_one :proper, key: :object, serializer: ActivityPub::NoteSerializer
  5. def id
  6. [ActivityPub::TagManager.instance.activity_uri_for(object)].join
  7. end
  8. def type
  9. announce? ? 'Announce' : 'Create'
  10. end
  11. def actor
  12. ActivityPub::TagManager.instance.uri_for(object.account)
  13. end
  14. def published
  15. object.created_at.iso8601
  16. end
  17. def to
  18. ActivityPub::TagManager.instance.to(object)
  19. end
  20. def cc
  21. ActivityPub::TagManager.instance.cc(object)
  22. end
  23. def announce?
  24. object.reblog?
  25. end
  26. end