Sha256: bdd71641fc69d21260784bb87fc736caa983622896b7f191294e49d009febb06

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

require 'active_support/concern'

module Georgia
  module Indexer
    module TireAdapter
      module GeorgiaMailerMessageExtension
        extend ActiveSupport::Concern

        included do

          include ::Tire::Model::Search
          include ::Tire::Model::Callbacks

          def to_indexed_json
            {
              name: name,
              email: email,
              message: message,
              subject: subject,
              phone: phone,
              status: status,
              created_at: created_at.strftime('%F')
            }.to_json
          end

          def self.search_index model, params
            model.tire.search(page: (params[:page] || 1), per_page: (params[:per] || 25)) do
              if params[:query].present?
                query do
                  boolean do
                    must { string params[:query], default_operator: "AND" }
                  end
                end
                sort { by (params[:o] || :created_at), (params[:dir] || :desc) }
              end
            end.results
          end

        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
georgia_mailer-0.1.1 lib/georgia/indexer/extensions/tire_adapter/georgia_mailer/message.rb