Sha256: f389f66fd737697c9e358d8c7e1e3b66a24c781c3efe0b85dfcc352d46d58be5

Contents?: true

Size: 1.98 KB

Versions: 1

Compression:

Stored size: 1.98 KB

Contents

module OpenStax::Connect::Dev
  class UsersSearch

    include Lev::Handler

    paramify :search do
      attribute :search_type, type: String
      validates :search_type, presence: true,
                              inclusion: { in: %w(Name Username Any),
                                           message: "is not valid" }

      attribute :search_terms, type: String
      validates :search_terms, presence: true                               
    end

    uses_routine OpenStax::Connect::SearchUsers, as: :search_users

  protected

    def authorized?
      !Rails.env.production? || caller.is_administrator?
    end

    def exec
      terms = search_params.search_terms
      type = search_params.search_type

      # results[:users] = run(OpenStax::Connect::SearchUsers, terms, type.downcase.to_sym)
      # results[:users] = run(:openstax_connect_search_users, terms, type.downcase.to_sym)
      results[:users] = run(:search_users, terms, type.downcase.to_sym)

      # if terms.blank?
      #   users = User.where{id == nil}.where{id != nil} # Empty
      # else
      #   # Note: % is the wildcard. This allows the user to search
      #   # for stuff that "begins with" but not "ends with".
      #   case type
      #   when 'Name'
      #     users = User.scoped
      #     terms.gsub(/[%,]/, '').split.each do |t|
      #       next if t.blank?
      #       query = t + '%'
      #       users = users.where{(first_name =~ query) | (last_name =~ query)}
      #     end
      #   when 'Username'
      #     query = terms.gsub('%', '') + '%'
      #     users = where{username =~ query}
      #   else # Any
      #     users = User.scoped
      #     terms.gsub(/[%,]/, '').split.each do |t|
      #       next if t.blank?
      #       query = t + '%'
      #       users = users.where{(first_name =~ query) | 
      #                   (last_name =~ query) |
      #                   (username =~ query)}
      #     end
      #   end
      # end

      # results[:users] = users
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
openstax_connect-0.0.1 app/handlers/openstax/connect/dev/users_search.rb