Skip to content

Commit 5b48aba

Browse files
Add custom error to handle invalid param in sort
1 parent 0185723 commit 5b48aba

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
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

lib/query_helper/sql_sort.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)