Skip to content

Commit

Permalink
Seperates publishing for messages and uploads
Browse files Browse the repository at this point in the history
Signed-off-by: Akash Manohar J <akash@akash.im>
  • Loading branch information
HashNuke committed Apr 10, 2012
1 parent 7b88b88 commit 3ef00e0
Showing 1 changed file with 26 additions and 5 deletions.
31 changes: 26 additions & 5 deletions app/models/activity_observer.rb
Expand Up @@ -2,12 +2,33 @@ class ActivityObserver < ActiveRecord::Observer

def after_save(activity)
if activity.action == "message" || activity.action == "upload"
faye_channel = "/channels/#{activity.channel.to_param}"
broadcast_data = activity.attributes.merge({
:user => activity.user.attributes,
:channel => activity.channel.attributes
})
faye_channel, broadcast_data = self.send "#{activity.action}_broadcast_data", activity
Kandan::Config.broadcaster.broadcast(faye_channel, broadcast_data)
end
end

private
def message_broadcast_data(activity)
faye_channel = "/channels/#{activity.channel.to_param}"
broadcast_data = activity.attributes.merge({
:user => activity.user.attributes,
:channel => activity.channel.attributes
})
[faye_channel, broadcast_data]
end

def upload_broadcast_data(activity)
faye_channel = "/app/activities"
broadcast_data = {
:event => "attachment#upload",
:entity => activity.attributes.merge({
:user => activity.user.attributes,
:channel => activity.channel.attributes
}),
:extra => {
:attachments => activity.channel.attachments.as_json(:methods => :url)
}
}
[faye_channel, broadcast_data]
end
end

0 comments on commit 3ef00e0

Please sign in to comment.