Sha256: 9fac4cb747f05b11bf3f98fc9b6056b41c103a16d6320c0953d0a35b2d12b27d

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 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 params
            page     = params.fetch(:page, 1)
            per_page = params.fetch(:per, 25)

            search(page: page, per_page: per_page) do
              if params[:query].present?
                query do
                  boolean do
                    must { string params[:query], default_operator: "AND" }
                  end
                end
              end
              sort { by (params[:o] || :created_at), (params[:dir] || :desc) } if params[:query].blank?
            end.results
          end

        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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