diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/anonymous_user.rb | 5 | ||||
-rw-r--r-- | app/models/invite_code.rb | 1 | ||||
-rw-r--r-- | app/models/invite_code_validator.rb | 7 | ||||
-rw-r--r-- | app/models/user.rb | 7 |
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 ## |