Sha256: c475dbf7509a80a5b4375d4438273cb0804c243cace856376cc7321a053bc396

Contents?: true

Size: 650 Bytes

Versions: 14

Compression:

Stored size: 650 Bytes

Contents

class CodeManager::Invitation < CodeManager
  # @return [CodeType]
  def self.code_type
    @code_type ||= CodeType.find_by!(slug: 'invitation')
  end

  # @param [User] user
  def self.code_for_user(user)
    code = code_type.codes.active.owned_by(user).first
    if code.nil?
      code = code_type.codes.create(user: user)
    end
    code
  end

  def code_is_valid?
    return false if @code.nil?
    @code.active? && @code.code_type == self.code_type
  end

  # @param [User] invitee
  def activate(invitee)
    return if invitee.nil? || @code.quantity < 1
    @code.decrement!(:quantity)
    invitee.update(inviter_id: @code.user_id)
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
biovision-base-0.22.180920.0 app/services/code_manager/invitation.rb
biovision-base-0.21.180812.0 app/services/code_manager/invitation.rb
biovision-base-0.20.180731.0 app/services/code_manager/invitation.rb
biovision-base-0.19.180703.1 app/services/code_manager/invitation.rb
biovision-base-0.17.180619 app/services/code_manager/invitation.rb
biovision-base-0.15.180502 app/services/code_manager/invitation.rb
biovision-base-0.15.180415 app/services/code_manager/invitation.rb
biovision-base-0.14.180326 app/services/code_manager/invitation.rb
biovision-base-0.11.180127 app/services/code_manager/invitation.rb
biovision-base-0.9.171227 app/services/code_manager/invitation.rb
biovision-base-0.8.171029 app/services/code_manager/invitation.rb
biovision-base-0.8.170916 app/services/code_manager/invitation.rb
biovision-base-0.7.170709 app/services/code_manager/invitation.rb
biovision-base-0.5.170614 app/services/code_manager/invitation.rb