From 2d14f647456fd9e03f7e65a186075f0e3e7eb5d6 Mon Sep 17 00:00:00 2001
From: Raphael <raphael@joindiaspora.com>
Date: Wed, 11 Aug 2010 16:10:27 -0700
Subject: [PATCH] RS, DG; Socketing moved to user

---
 app/models/comment.rb     |  3 ---
 app/models/post.rb        |  2 --
 app/models/retraction.rb  |  1 +
 app/models/user.rb        |  5 +++--
 lib/diaspora/websocket.rb | 13 -------------
 5 files changed, 4 insertions(+), 20 deletions(-)

diff --git a/app/models/comment.rb b/app/models/comment.rb
index 8c66ac62ac..b62164075e 100644
--- a/app/models/comment.rb
+++ b/app/models/comment.rb
@@ -19,9 +19,6 @@ class Comment
   key :person_id, ObjectId
   belongs_to :person, :class_name => "Person"
   
-  after_save :send_to_view
-  
-
   def ==(other)
     (self.message == other.message) && (self.person.email == other.person.email)
   end
diff --git a/app/models/post.rb b/app/models/post.rb
index 61fe5821aa..f41120698c 100644
--- a/app/models/post.rb
+++ b/app/models/post.rb
@@ -21,8 +21,6 @@ class Post
     
   timestamps!
 
-  after_save :send_to_view
- 
   before_destroy :propagate_retraction
   after_destroy :destroy_comments, :remove_from_view
 
diff --git a/app/models/retraction.rb b/app/models/retraction.rb
index dff72b767c..5f506e61d5 100644
--- a/app/models/retraction.rb
+++ b/app/models/retraction.rb
@@ -25,6 +25,7 @@ class Retraction
   attr_accessor :type
 
   def perform
+    Rails.logger.debug "Performing retraction for #{object.post_id}"
     begin
       return unless signature_valid?
       Rails.logger.debug("Retracting #{self.type} id: #{self.post_id}")
diff --git a/app/models/user.rb b/app/models/user.rb
index d544224459..56a939fc77 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -124,8 +124,8 @@ class User
     Rails.logger.debug("Receiving object:\n#{object.inspect}")
 
     if object.is_a? Retraction
-      Rails.logger.debug "Got a retraction for #{object.post_id}"
-      object.perform
+      object.post.unsocket_from_uid self.id
+      object.perform 
       
     elsif object.is_a? Request
       person = Diaspora::Parser.get_or_create_person_object_from_xml( xml )
@@ -141,6 +141,7 @@ class User
       person.save  
     else 
       Rails.logger.debug("Saving object with success: #{object.save}")
+      object.socket_to_uid id
     end
   end
 
diff --git a/lib/diaspora/websocket.rb b/lib/diaspora/websocket.rb
index 4ff1fff1ab..fcdcc97449 100644
--- a/lib/diaspora/websocket.rb
+++ b/lib/diaspora/websocket.rb
@@ -39,18 +39,5 @@ module Diaspora
       SocketsController.new.outgoing(id, Retraction.for(self))
     end
 
-    def send_to_view
-      people_with_permissions.each{|f|
-        socket_to_uid f.owner_id if f.owner_id
-      }
-      socket_to_uid person.owner_id if person.owner_id
-    end
-
-     def remove_from_view 
-      people_with_permissions.each{|f|
-        unsocket_from_uid f.owner_id if f.owner_id
-      }
-      unsocket_from_uid person.owner_id if person.owner_id
-    end   
   end
 end
-- 
GitLab