Sha256: be38266bad8dfa0392b5bf28c3b6fc7d55f5a386d19c6c8400959c311a4b4166

Contents?: true

Size: 1.46 KB

Versions: 6

Compression:

Stored size: 1.46 KB

Contents

require_relative 'resource'

module Medivo

  class PrimaryInsurance
    include ActiveModel::Validations

    validates_presence_of :relationship, :company_name, :policy_number, :group_number

    def initialize(attributes = {})
      @attributes = attributes
    end

    def read_attribute_for_validation(key)
      @attributes[key]
    end

    def validate(record)
      primary_insurance = record.attributes[:primary_insurance]
      record.errors.add(:primary_insurance, "primary_insurance field must be present") and return unless primary_insurance
      record.errors.add(:primary_insurance, "primary_insurance field must be of PrimaryInsurance class") unless primary_insurance.is_a? PrimaryInsurance
      primary_insurance.valid?
      record.errors.add(:'primary_insurance.relationship', "primary_insurance relationship field must be the value 1") unless primary_insurance.read_attribute_for_validation(:relationship) == 1
      for field in %w(company_name policy_number group_number)
        record.errors.add(:"primary_insurance.#{field}", "primary_insurance #{field} must be present") unless primary_insurance.read_attribute_for_validation(field)
      end
    end
  end

  class InsuranceOrder < Order
    validates_with Medivo::ArrayValidator, :fields => [:diagnosis_code]
    validates_with PrimaryInsurance

    # when getting the insurance info from medivo labs
    def insurance
      @insurance ||= try(:insurance_information).try(:primary_insurance_info)
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
medivo-0.0.8 app/models/medivo/insurance_order.rb
medivo-0.0.7 app/models/medivo/insurance_order.rb
medivo-0.0.4 app/models/medivo/insurance_order.rb
medivo-0.0.3 app/models/medivo/insurance_order.rb
medivo-0.0.2 app/models/medivo/insurance_order.rb
medivo-0.0.1 app/models/medivo/insurance_order.rb