File tree Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Expand file tree Collapse file tree 2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change 1+ class QueryHelper
2+ class InvalidSortParamError < StandardError
3+
4+ attr_reader :sort_string
5+
6+ def initialize ( msg = 'Invalid sort param' , sort_string = '' )
7+ @sort_string = sort_string
8+ super ( msg )
9+ end
10+
11+ def as_json
12+ {
13+ 'error' => message ,
14+ 'sort_param' => sort_string
15+ }
16+ end
17+ end
18+ end
Original file line number Diff line number Diff line change @@ -34,7 +34,9 @@ def attributes_sql_expression(sort_attribute)
3434 direction = sort . split ( ":" ) [ 1 ]
3535 modifier = sort . split ( ":" ) [ 2 ]
3636 begin
37- sql_expression = @column_maps . find { |m | m . alias_name . casecmp? ( sort_alias ) } . sql_expression
37+ sort_col = @column_maps . find { |m | m . alias_name . casecmp? ( sort_alias ) }
38+ raise InvalidSortParamError . new ( "Invalid sort param" , sort_alias ) if sort_col . nil?
39+ sql_expression = sort_col . sql_expression
3840 rescue NoMethodError => e
3941 raise InvalidQueryError . new ( "Sorting not allowed on column '#{ sort_alias } '" )
4042 end
You can’t perform that action at this time.
0 commit comments