Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/diaspora/diaspora.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDennis Collinson <dennis.collective@gmail.com>2012-02-09 06:24:40 +0400
committerDennis Collinson <dennis.collective@gmail.com>2012-02-10 07:01:00 +0400
commit9e1816dc12186b0957873856cffcb1f4ea68aabc (patch)
treeb5b3b0d7160c01d87a25fd24e1ce9808eeb1213f /app/models/like.rb
parent1c314c9540b9617e8860dda512d67928fbc26e64 (diff)
Participations are a federated, relayable model :)
Diffstat (limited to 'app/models/like.rb')
-rw-r--r--app/models/like.rb51
1 files changed, 8 insertions, 43 deletions
diff --git a/app/models/like.rb b/app/models/like.rb
index 5466bddd1..07dc4e2ea 100644
--- a/app/models/like.rb
+++ b/app/models/like.rb
@@ -2,14 +2,16 @@
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
-class Like < ActiveRecord::Base
- include ROXML
+class Like < FederatedRelayable
+ after_create do
+ self.parent.update_likes_counter
+ end
- include Diaspora::Webhooks
- include Diaspora::Guid
+ after_destroy do
+ self.parent.update_likes_counter
+ end
- xml_attr :target_type
- include Diaspora::Relayable
+ xml_attr :positive
# NOTE API V1 to be extracted
acts_as_api
@@ -20,43 +22,6 @@ class Like < ActiveRecord::Base
t.add :created_at
end
- xml_attr :positive
- xml_attr :diaspora_handle
-
- belongs_to :target, :polymorphic => true
- belongs_to :author, :class_name => 'Person'
-
- validates_uniqueness_of :target_id, :scope => [:target_type, :author_id]
- validates :parent, :presence => true #should be in relayable (pending on fixing Message)
-
- after_create do
- self.parent.update_likes_counter
- end
-
- after_destroy do
- self.parent.update_likes_counter
- end
-
- def diaspora_handle
- self.author.diaspora_handle
- end
-
- def diaspora_handle= nh
- self.author = Webfinger.new(nh).fetch
- end
-
- def parent_class
- self.target_type.constantize
- end
-
- def parent
- self.target
- end
-
- def parent= parent
- self.target = parent
- end
-
def notification_type(user, person)
#TODO(dan) need to have a notification for likes on comments, until then, return nil
return nil if self.target_type == "Comment"