summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2014-03-06 18:55:38 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-03-06 18:55:38 -0500
commit1788dde36e53c4ef16adc5db2d19f44797325496 (patch)
tree4d331750a288fcdc052df2ae7dff19c68cd24151 /app/models
parent39f373778e73c54952dddd11e87f4ba354471622 (diff)
implement tournament joining
Diffstat (limited to 'app/models')
-rw-r--r--app/models/tournament.rb19
-rw-r--r--app/models/user.rb1
2 files changed, 19 insertions, 1 deletions
diff --git a/app/models/tournament.rb b/app/models/tournament.rb
index cc915a0..afdd27e 100644
--- a/app/models/tournament.rb
+++ b/app/models/tournament.rb
@@ -1,3 +1,20 @@
class Tournament < ActiveRecord::Base
- belongs_to :game
+ belongs_to :game
+ has_many :users, :through => :user_tournament_pair
+
+ def open?
+ return true
+ end
+
+ def joinable_by?(user)
+ return ((not user.nil?) and user.in_group?(:player) and open?)
+ end
+
+ def join(user)
+ unless joinable?(user)
+ return false
+ end
+ pair = new_user_tournament_pair(user: user)
+ return pair.save
+ end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 079b870..976ecf4 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -1,4 +1,5 @@
class User < ActiveRecord::Base
+ has_many :tournaments, :through => :user_tournament_pair
before_save { self.email = email.downcase }
before_save { self.user_name = user_name }