module GenericSearch::Validation
Public Instance Methods
valid_syntax?(query_string)
click to toggle source
# File lib/generic_search/validation.rb, line 104 def valid_syntax?(query_string) end
validate()
click to toggle source
# File lib/generic_search/validation.rb, line 5 def validate end
validate_columns(table_name, column_names, clause)
click to toggle source
#self.validate_query
end
# File lib/generic_search/validation.rb, line 64 def validate_columns(table_name, column_names, clause) connection = ActiveRecord::Base.connection config = GenericSearch.config[table_name.intern] config_for_where = (config and config[:for_where]) || {} config_for_select = (config and config[:for_select]) || {} if !connection.table_exists?(table_name) and !self.base_class.reflections.has_key?(table_name) self.errors.add(:base, "'#{table_name}' table is invalid (in '#{clause}')") return end if !connection.table_exists?(table_name) if !self.base_class.reflections.has_key?(table_name) self.errors.add(:base, "'#{table_name}' table is invalid (in '#{clause}')") return else table_name = self.base_class._relation_table[table_name.intern] end end return if column_names.blank? unknown_columns = [] column_names.each do |column_name| next if config_for_select and config_for_select.has_key?(column_name.intern) next if config_for_where and config_for_where.has_key?(column_name.intern) if !connection.column_exists?(table_name, column_name) and !config_for_select.has_key?(column_name.intern) and !config_for_where.has_key?(column_name.intern) unknown_columns << column_name end end if !unknown_columns.blank? self.errors.add(:base, "'#{unknown_columns.join(', ')}' column#{unknown_columns.size > 1 ? 's' : ''} not found in '#{table_name}' table (in '#{clause}')") end end
validate_group()
click to toggle source
# File lib/generic_search/validation.rb, line 116 def validate_group end
validate_limit()
click to toggle source
# File lib/generic_search/validation.rb, line 124 def validate_limit end
validate_query()
click to toggle source
# File lib/generic_search/validation.rb, line 108 def validate_query end
validate_results()
click to toggle source
# File lib/generic_search/validation.rb, line 112 def validate_results end
validate_sort_order()
click to toggle source
# File lib/generic_search/validation.rb, line 120 def validate_sort_order end
validate_syntax()
click to toggle source
# File lib/generic_search/validation.rb, line 9 def validate_syntax [params[:query], params[:results], params[:group]].each do |query_string| next if query_string.blank? #if query_string.include?(',,') if query_string.match(/\s*\,\s*\,\s*/) @status = :bad_request #@message = "malformed url - double comma" @message = GenericSearch::Messages::DoubleComma self.errors.add(:base, @message) #return false end #if query_string.include?('((') if query_string.match(/\s*\(\s*\(\s*/) @status = :bad_request @message = GenericSearch::Messages::DoubleOpenParan self.errors.add(:base, @message) #return false end # To check )) if query_string.match(/\s*\)\s*\)\s*/) @status = :bad_request @message = GenericSearch::Messages::DoubleCloseParan self.errors.add(:base, @message) end if query_string.count("()") % 2 == 1 @status = :bad_request @message = GenericSearch::Messages::IncorrectUseOfParan self.errors.add(:base, @message) end end #if type.eql?("where_clause") # puts "verifying specific legal query_strings for where_clause" # if !query_string.include?('(') # @status = :bad_request # @message = "malformed url - no query arguments" # return false # end #end #return true end
validate_table_columns(table, columns)
click to toggle source
def validate_columns
(table_name, column_names, clause)
connection = ActiveRecord::Base.connection if !connection.table_exists?(table_name) and !self.base_class.reflections.has_key?(table_name.intern) @_uri_errors << "'#{table_name}' is invalid in '#{clause}'" return end if !connection.table_exists?(table_name) if !self.base_class.reflections.has_key?(table_name.intern) @_uri_errors << "'#{table_name}' is invalid in '#{clause}'" return else table_name = self.base_class._relation_table[table_name.intern] end end return if column_names.blank? unknown_columns = [] config = GenericSearchMethods.config[table_name.intern] column_names.each do |column_name| next if config and config.has_key?(column_name.intern) if !connection.column_exists?(table_name, column_name) unknown_columns << column_name end end if !unknown_columns.blank? @_uri_errors << "'#{unknown_columns.join(', ')}' column#{unknown_columns.size > 1 ? 's' : ''} not found in '#{table_name}' table in '#{clause}'" end
end
# File lib/generic_search/validation.rb, line 166 def validate_table_columns(table, columns) #connection = ActiveRecord::Base.connection #if connection.table_exists? table # #end end
validate_uri_syntax()
click to toggle source
# File lib/generic_search/validation.rb, line 175 def validate_uri_syntax end