Introduce the "Relayable" entity, which encapsulates common
properties of entities that are inherited from Relayable class in the Diaspora source code - "parent_guid", "parent_author_signature", "author_signature".
This commit is contained in:
parent
03f10b6a03
commit
fd1f896d17
10 changed files with 34 additions and 53 deletions
|
|
@ -8,6 +8,7 @@ module DiasporaFederation
|
|||
end
|
||||
end
|
||||
|
||||
require "diaspora_federation/entities/relayable"
|
||||
require "diaspora_federation/entities/profile"
|
||||
require "diaspora_federation/entities/person"
|
||||
require "diaspora_federation/entities/location"
|
||||
|
|
|
|||
|
|
@ -2,9 +2,7 @@ module DiasporaFederation
|
|||
module Entities
|
||||
class Comment < Entity
|
||||
property :guid
|
||||
property :parent_guid
|
||||
property :parent_author_signature
|
||||
property :author_signature
|
||||
include Relayable
|
||||
property :text
|
||||
property :diaspora_id, xml_name: :diaspora_handle
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,9 +4,7 @@ module DiasporaFederation
|
|||
property :positive
|
||||
property :guid
|
||||
property :target_type
|
||||
property :parent_guid
|
||||
property :parent_author_signature
|
||||
property :author_signature
|
||||
include Relayable
|
||||
property :diaspora_id, xml_name: :diaspora_handle
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,9 +2,7 @@ module DiasporaFederation
|
|||
module Entities
|
||||
class Message < Entity
|
||||
property :guid
|
||||
property :parent_guid
|
||||
property :parent_author_signature
|
||||
property :author_signature
|
||||
include Relayable
|
||||
property :text
|
||||
property :created_at, default: -> { Time.now.utc }
|
||||
property :diaspora_id, xml_name: :diaspora_handle
|
||||
|
|
|
|||
|
|
@ -3,9 +3,7 @@ module DiasporaFederation
|
|||
class Participation < Entity
|
||||
property :guid
|
||||
property :target_type
|
||||
property :parent_guid
|
||||
property :parent_author_signature
|
||||
property :author_signature
|
||||
include Relayable
|
||||
property :diaspora_id, xml_name: :diaspora_handle
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -2,8 +2,7 @@ module DiasporaFederation
|
|||
module Entities
|
||||
class PollParticipation < Entity
|
||||
property :guid
|
||||
property :parent_guid
|
||||
property :parent_author_signature
|
||||
include Relayable
|
||||
property :diaspora_id, xml_name: :diaspora_handle
|
||||
property :poll_answer_guid
|
||||
end
|
||||
|
|
|
|||
13
lib/diaspora_federation/entities/relayable.rb
Normal file
13
lib/diaspora_federation/entities/relayable.rb
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
module DiasporaFederation
|
||||
module Entities
|
||||
module Relayable
|
||||
def self.included(model)
|
||||
model.class_eval do
|
||||
property :parent_guid
|
||||
property :parent_author_signature
|
||||
property :author_signature
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -93,15 +93,18 @@ FactoryGirl.define do
|
|||
width 800
|
||||
end
|
||||
|
||||
factory :participation_entity, class: DiasporaFederation::Entities::Participation do
|
||||
guid
|
||||
target_type "StatusMessage"
|
||||
factory :relayable_entity, class: DiasporaFederation::Entities::Relayable do
|
||||
parent_guid { generate(:guid) }
|
||||
diaspora_id
|
||||
parent_author_signature { generate(:signature) }
|
||||
author_signature { generate(:signature) }
|
||||
end
|
||||
|
||||
factory :participation_entity, class: DiasporaFederation::Entities::Participation, parent: :relayable_entity do
|
||||
guid
|
||||
target_type "StatusMessage"
|
||||
diaspora_id
|
||||
end
|
||||
|
||||
factory :status_message_entity, class: DiasporaFederation::Entities::StatusMessage do
|
||||
raw_message "i am a very interesting status update"
|
||||
guid
|
||||
|
|
@ -115,22 +118,16 @@ FactoryGirl.define do
|
|||
recipient_id { generate(:diaspora_id) }
|
||||
end
|
||||
|
||||
factory :comment_entity, class: DiasporaFederation::Entities::Comment do
|
||||
factory :comment_entity, class: DiasporaFederation::Entities::Comment, parent: :relayable_entity do
|
||||
guid
|
||||
parent_guid { generate(:guid) }
|
||||
parent_author_signature { generate(:signature) }
|
||||
author_signature { generate(:signature) }
|
||||
text "this is a very informative comment"
|
||||
diaspora_id
|
||||
end
|
||||
|
||||
factory :like_entity, class: DiasporaFederation::Entities::Like do
|
||||
factory :like_entity, class: DiasporaFederation::Entities::Like, parent: :relayable_entity do
|
||||
positive 1
|
||||
guid
|
||||
target_type "StatusMessage"
|
||||
parent_guid { generate(:guid) }
|
||||
parent_author_signature { generate(:signature) }
|
||||
author_signature { generate(:signature) }
|
||||
diaspora_id
|
||||
end
|
||||
|
||||
|
|
@ -147,11 +144,8 @@ FactoryGirl.define do
|
|||
participant_ids { 3.times.map { generate(:diaspora_id) }.join(";") }
|
||||
end
|
||||
|
||||
factory :message_entity, class: DiasporaFederation::Entities::Message do
|
||||
factory :message_entity, class: DiasporaFederation::Entities::Message, parent: :relayable_entity do
|
||||
guid
|
||||
parent_guid { generate(:guid) }
|
||||
parent_author_signature { generate(:signature) }
|
||||
author_signature { generate(:signature) }
|
||||
text "this is a very informative text"
|
||||
created_at { DateTime.now.utc }
|
||||
diaspora_id
|
||||
|
|
@ -200,11 +194,11 @@ FactoryGirl.define do
|
|||
poll_answers { 3.times.map { FactoryGirl.build(:poll_answer_entity) } }
|
||||
end
|
||||
|
||||
factory :poll_participation_entity, class: DiasporaFederation::Entities::PollParticipation do
|
||||
factory :poll_participation_entity,
|
||||
class: DiasporaFederation::Entities::PollParticipation,
|
||||
parent: :relayable_entity do
|
||||
guid
|
||||
parent_guid { generate(:guid) }
|
||||
diaspora_id
|
||||
parent_author_signature { generate(:signature) }
|
||||
poll_answer_guid { generate(:guid) }
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -15,26 +15,7 @@ module DiasporaFederation
|
|||
<guid>#{data[:guid]}</guid>
|
||||
<subject>#{data[:subject]}</subject>
|
||||
<created_at>#{data[:created_at]}</created_at>
|
||||
<message>
|
||||
<guid>#{msg1.guid}</guid>
|
||||
<parent_guid>#{msg1.parent_guid}</parent_guid>
|
||||
<parent_author_signature>#{msg1.parent_author_signature}</parent_author_signature>
|
||||
<author_signature>#{msg1.author_signature}</author_signature>
|
||||
<text>#{msg1.text}</text>
|
||||
<created_at>#{msg1.created_at}</created_at>
|
||||
<diaspora_handle>#{msg1.diaspora_id}</diaspora_handle>
|
||||
<conversation_guid>#{msg1.conversation_guid}</conversation_guid>
|
||||
</message>
|
||||
<message>
|
||||
<guid>#{msg2.guid}</guid>
|
||||
<parent_guid>#{msg2.parent_guid}</parent_guid>
|
||||
<parent_author_signature>#{msg2.parent_author_signature}</parent_author_signature>
|
||||
<author_signature>#{msg2.author_signature}</author_signature>
|
||||
<text>#{msg2.text}</text>
|
||||
<created_at>#{msg2.created_at}</created_at>
|
||||
<diaspora_handle>#{msg2.diaspora_id}</diaspora_handle>
|
||||
<conversation_guid>#{msg2.conversation_guid}</conversation_guid>
|
||||
</message>
|
||||
#{data[:messages].map {|a| a.to_xml.to_s.indent(2) }.join("\n")}
|
||||
<diaspora_handle>#{data[:diaspora_id]}</diaspora_handle>
|
||||
<participant_handles>#{data[:participant_ids]}</participant_handles>
|
||||
</conversation>
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ module DiasporaFederation
|
|||
<guid>#{data[:guid]}</guid>
|
||||
<parent_guid>#{data[:parent_guid]}</parent_guid>
|
||||
<parent_author_signature>#{data[:parent_author_signature]}</parent_author_signature>
|
||||
<author_signature>#{data[:author_signature]}</author_signature>
|
||||
<diaspora_handle>#{data[:diaspora_id]}</diaspora_handle>
|
||||
<poll_answer_guid>#{data[:poll_answer_guid]}</poll_answer_guid>
|
||||
</poll_participation>
|
||||
|
|
|
|||
Loading…
Reference in a new issue