summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorValery Sizov <vsv2711@gmail.com>2015-03-16 17:20:17 +0200
committerValery Sizov <vsv2711@gmail.com>2015-03-16 21:38:41 +0200
commit1b437ec3498bc544dbd1b252f5c755e9073407fd (patch)
treee3c0cea66260a2b65d21b660ebd4b042a6b0c80c /app/models
parentf53683e67fa0db7b13d0dee977bc21206af7e0fd (diff)
downloadgitlab-ce-1b437ec3498bc544dbd1b252f5c755e9073407fd.tar.gz
tests
Diffstat (limited to 'app/models')
-rw-r--r--app/models/concerns/issuable.rb8
-rw-r--r--app/models/subscription.rb13
2 files changed, 20 insertions, 1 deletions
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb
index d1a35ca5294..88ac83744df 100644
--- a/app/models/concerns/issuable.rb
+++ b/app/models/concerns/issuable.rb
@@ -133,7 +133,7 @@ module Issuable
users.concat(mentions.reduce([], :|)).uniq
end
- def subscription_status(user)
+ def subscribed?(user)
subscription = subscriptions.find_by_user_id(user.id)
if subscription
@@ -143,6 +143,12 @@ module Issuable
participants.include?(user)
end
+ def toggle_subscription(user)
+ subscriptions.
+ find_or_initialize_by(user_id: user.id).
+ update(subscribed: !subscribed?(user))
+ end
+
def to_hook_data(user)
{
object_kind: self.class.name.underscore,
diff --git a/app/models/subscription.rb b/app/models/subscription.rb
index 276cf0e9465..dd75d3ab8ba 100644
--- a/app/models/subscription.rb
+++ b/app/models/subscription.rb
@@ -1,3 +1,16 @@
+# == Schema Information
+#
+# Table name: subscriptions
+#
+# id :integer not null, primary key
+# user_id :integer
+# subscribable_id :integer
+# subscribable_type :string(255)
+# subscribed :boolean
+# created_at :datetime
+# updated_at :datetime
+#
+
class Subscription < ActiveRecord::Base
belongs_to :user
belongs_to :subscribable, polymorphic: true