summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/anonymous_user.rb5
-rw-r--r--app/models/invite_code.rb1
-rw-r--r--app/models/invite_code_validator.rb7
-rw-r--r--app/models/user.rb7
4 files changed, 17 insertions, 3 deletions
diff --git a/app/models/anonymous_user.rb b/app/models/anonymous_user.rb
index 0c1f540..73e95e5 100644
--- a/app/models/anonymous_user.rb
+++ b/app/models/anonymous_user.rb
@@ -12,6 +12,10 @@ class AnonymousUser < Object
def id
nil
end
+
+ def has_payment_info?
+ false
+ end
def email
nil
@@ -32,4 +36,5 @@ class AnonymousUser < Object
def is_anonymous?
true
end
+
end
diff --git a/app/models/invite_code.rb b/app/models/invite_code.rb
index 6fcc427..5666a4f 100644
--- a/app/models/invite_code.rb
+++ b/app/models/invite_code.rb
@@ -5,6 +5,7 @@ class InviteCode < CouchRest::Model::Base
use_database 'invite_codes'
property :invite_code, String, :read_only => true
property :invite_count, Integer, :default => 0, :accessible => true
+ property :max_uses, Integer, :default => 1
timestamps!
diff --git a/app/models/invite_code_validator.rb b/app/models/invite_code_validator.rb
index f96ca4a..676e4fa 100644
--- a/app/models/invite_code_validator.rb
+++ b/app/models/invite_code_validator.rb
@@ -1,4 +1,5 @@
class InviteCodeValidator < ActiveModel::Validator
+
def validate(user)
user_invite_code = InviteCode.find_by_invite_code user.invite_code
@@ -6,7 +7,7 @@ class InviteCodeValidator < ActiveModel::Validator
if not_existent?(user_invite_code)
add_error_to_user("This is not a valid code", user)
- elsif count_greater_than_zero?(user_invite_code)
+ elsif has_no_uses_left?(user_invite_code)
add_error_to_user("This code has already been used", user)
end
end
@@ -16,8 +17,8 @@ class InviteCodeValidator < ActiveModel::Validator
code == nil
end
- def count_greater_than_zero?(code)
- code.invite_count > 0
+ def has_no_uses_left?(code)
+ code.invite_count >= code.max_uses
end
def add_error_to_user(error, user)
diff --git a/app/models/user.rb b/app/models/user.rb
index 3daee0f..4bb1e79 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -9,6 +9,9 @@ class User < CouchRest::Model::Base
property :contact_email, String, :accessible => true
property :contact_email_key, String, :accessible => true
property :invite_code, String, :accessible => true
+ property :braintree_customer_id, Integer, :accessible => true
+ property :subscription_id, String, :accessible => true
+
property :enabled, TrueClass, :default => true
# these will be null by default but we shouldn't ever pull them directly, but only via the methods that will return the full ServiceLevel
@@ -177,6 +180,10 @@ class User < CouchRest::Model::Base
end
+ def has_payment_info?
+ braintree_customer_id
+ end
+
protected
##