Sha256: 865c4216a702152d133fd73bb0e58ed46c100ca2f0b19f5721bf55df20b0b85b

Contents?: true

Size: 1.34 KB

Versions: 3

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

module Kaui
  module ObjectHelper
    ADVANCED_SEARCH_OBJECT_FIELDS = %w[ID EXTERNAL_KEY NUMBER].freeze
    ADVANCED_SEARCH_OBJECT_FIELDS_MAP = {
      # ID is supported by all object types, hence not listed.
      EXTERNAL_KEY: %w[ACCOUNT PAYMENT TRANSACTION BUNDLE],
      NUMBER: %w[INVOICE]
    }.freeze

    # Because we don't have access to the account_id, we use the restful_show routes
    def url_for_object(object_id, object_type)
      case object_type
      when 'ACCOUNT'
        account_path(object_id)
      when 'BUNDLE'
        bundle_path(object_id)
      when 'SUBSCRIPTION'
        subscription_path(object_id)
      when 'INVOICE'
        invoice_path(object_id)
      when 'PAYMENT'
        payment_path(object_id)
      when 'PAYMENT_METHOD'
        payment_method_path(object_id)
      else
        nil
      end
    end

    def object_types
      %i[ACCOUNT BUNDLE INVOICE INVOICE_ITEM INVOICE_PAYMENT PAYMENT SUBSCRIPTION TRANSACTION]
    end

    def object_types_for_advanced_search
      %i[ACCOUNT BUNDLE INVOICE CREDIT CUSTOM_FIELD INVOICE_PAYMENT PAYMENT SUBSCRIPTION TRANSACTION TAG TAG_DEFINITION]
    end

    def object_fields_for_advanced_search
      [' '] + ADVANCED_SEARCH_OBJECT_FIELDS
    end

    def advanced_search_object_fields_map
      ADVANCED_SEARCH_OBJECT_FIELDS_MAP
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kaui-3.0.5 app/helpers/kaui/object_helper.rb
kaui-3.0.4 app/helpers/kaui/object_helper.rb
kaui-3.0.2 app/helpers/kaui/object_helper.rb