Module: SpreeCmCommissioner::KycBitwise
- Extended by:
- ActiveSupport::Concern
- Included in:
- Guest
- Defined in:
- app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb
Constant Summary collapse
- BIT_FIELDS =
{ guest_name: 0b1, guest_gender: 0b10, guest_dob: 0b100, guest_occupation: 0b1000, guest_id_card: 0b10000, guest_nationality: 0b100000, guest_age: 0b1000000, guest_emergency_contact: 0b10000000, guest_organization: 0b100000000, guest_expectation: 0b1000000000, guest_social_contact: 0b10000000000, guest_address: 0b100000000000, guest_phone_number: 0b1000000000000, guest_contact: 0b10000000000000 }.freeze
- ORDERED_BIT_FIELDS =
%i[ guest_name guest_gender guest_phone_number guest_contact guest_dob guest_occupation guest_nationality guest_age guest_emergency_contact guest_organization guest_social_contact guest_address guest_expectation guest_id_card ].freeze
- KYC_FIELD_ATTRIBUTES =
Maps each KYC bit field to the actual Guest attribute(s) it stores.
{ guest_name: %i[first_name last_name], guest_gender: %i[gender], guest_dob: %i[dob], guest_occupation: %i[occupation_id other_occupation], guest_nationality: %i[nationality_id], guest_age: %i[age], guest_emergency_contact: %i[emergency_contact], guest_organization: %i[other_organization], guest_expectation: %i[expectation], guest_social_contact: %i[social_contact_platform social_contact], guest_address: %i[address], guest_phone_number: %i[phone_number], guest_contact: %i[contact] }.freeze
Instance Method Summary collapse
- #available_social_contact_platforms ⇒ Object
- #kyc? ⇒ Boolean
- #kyc_fields ⇒ Object
- #kyc_value_enabled?(bit_value) ⇒ Boolean
- #unordered_kyc_fields ⇒ Object
Instance Method Details
#available_social_contact_platforms ⇒ Object
80 81 82 83 |
# File 'app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb', line 80 def platforms = SpreeCmCommissioner::Guest..keys platforms.sort_by { |platform| platform == 'other' ? 1 : 0 } end |
#kyc? ⇒ Boolean
56 |
# File 'app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb', line 56 def kyc? = kyc != 0 |
#kyc_fields ⇒ Object
70 71 72 |
# File 'app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb', line 70 def kyc_fields unordered_kyc_fields.sort_by { |item| ORDERED_BIT_FIELDS.index(item) } end |
#kyc_value_enabled?(bit_value) ⇒ Boolean
74 75 76 77 78 |
# File 'app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb', line 74 def kyc_value_enabled?(bit_value) return false if kyc.nil? kyc & bit_value != 0 end |
#unordered_kyc_fields ⇒ Object
64 65 66 67 68 |
# File 'app/models/concerns/spree_cm_commissioner/kyc_bitwise.rb', line 64 def unordered_kyc_fields BIT_FIELDS.filter_map do |field, bit_value| field if kyc & bit_value != 0 end end |