query_helper 0.3.6 → 0.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a27ca095e7c4d3068540e36e523109f0e1e03bc2c3da465aba7ede82e54d9a98
4
- data.tar.gz: b7e0406b8c275e5996234c8e5a528c615c75483532b5f5a91b7926e88a0ed885
3
+ metadata.gz: 8de4575667fa298b34568c0635c91d7bc056e8f69b17e7c2053a29a974dff831
4
+ data.tar.gz: 12b8586b7bd0b14323ea85511dede752fd03d8b0ad12d3704e905fe2f0f8fe56
5
5
  SHA512:
6
- metadata.gz: 2f50dbcf3dc0e2de1afa33b2b59318ade4154eae8b4e2f9400ff8bcc4fd144515e4c021a6f65235b5d384b40cc5a743f0e9db122b5d5f50376f376d4ea784fe0
7
- data.tar.gz: 107dc690d8dc7e9672a7516fe1da95ebf9a2b65263e6dfae962d6587b7372935a349e53d18f101d049f44e7fd01fa0cb887c1bd2798013dbdcf4ee27b0ac03f0
6
+ metadata.gz: bf2ec789f7bc275fffde36f677711423279cf4746e6cdcd8c14f18d47b5c53053ec7772652b9ea23885dde9b0f63397fcab115624ceac486e004ba12edbcf16e
7
+ data.tar.gz: 853857f9e9937833b3199064964a54a20e2a089d786d50e5bc3775543d394e040e45b6c1fdc6ebc589f3febef515ccb1da850ac10115fe97a70bd268447ee4d0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- query_helper (0.3.6)
4
+ query_helper (0.3.8)
5
5
  activerecord (> 5)
6
6
  activesupport (> 5)
7
7
  sqlite3
@@ -89,7 +89,7 @@ GEM
89
89
  rspec-mocks (~> 3.10)
90
90
  rspec-support (~> 3.10)
91
91
  rspec-support (3.10.2)
92
- sqlite3 (1.6.4)
92
+ sqlite3 (2.1.0)
93
93
  mini_portile2 (~> 2.8.0)
94
94
  thor (1.1.0)
95
95
  tzinfo (2.0.4)
@@ -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
@@ -17,7 +17,7 @@ class QueryHelper
17
17
 
18
18
  @filter_values.each do |comparate_alias, criteria|
19
19
  # Find the sql mapping if it exists
20
- map = @column_maps.find { |m| m.alias_name == comparate_alias }
20
+ map = @column_maps.find { |m| m.alias_name.downcase == comparate_alias.downcase }
21
21
  raise InvalidQueryError.new("cannot filter by #{comparate_alias}") unless map
22
22
 
23
23
  # create the filter
@@ -34,7 +34,9 @@ class QueryHelper
34
34
  direction = sort.split(":")[1]
35
35
  modifier = sort.split(":")[2]
36
36
  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
38
40
  rescue NoMethodError => e
39
41
  raise InvalidQueryError.new("Sorting not allowed on column '#{sort_alias}'")
40
42
  end
@@ -1,3 +1,3 @@
1
1
  class QueryHelper
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.8"
3
3
  end
data/lib/query_helper.rb CHANGED
@@ -10,6 +10,7 @@ require "query_helper/sql_manipulator"
10
10
  require "query_helper/sql_filter"
11
11
  require "query_helper/sql_sort"
12
12
  require "query_helper/invalid_query_error"
13
+ require "query_helper/invalid_sort_param_error"
13
14
 
14
15
  class QueryHelper
15
16
 
@@ -281,7 +282,7 @@ class QueryHelper
281
282
  placement = :where
282
283
  maps = column_maps.select do |cm|
283
284
  placement = :having if cm.aggregate
284
- @search_fields.include? cm.alias_name
285
+ @search_fields.map(&:downcase).include? cm.alias_name.downcase
285
286
  end
286
287
  bind_variable = ('a'..'z').to_a.shuffle[0,20].join.to_sym
287
288
  @bind_variables[bind_variable] = "%#{@search_string}%"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: query_helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patterninc
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-04 00:00:00.000000000 Z
11
+ date: 2024-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -190,6 +190,7 @@ files:
190
190
  - lib/query_helper/column_map.rb
191
191
  - lib/query_helper/filter.rb
192
192
  - lib/query_helper/invalid_query_error.rb
193
+ - lib/query_helper/invalid_sort_param_error.rb
193
194
  - lib/query_helper/query_helper_concern.rb
194
195
  - lib/query_helper/sql_filter.rb
195
196
  - lib/query_helper/sql_manipulator.rb
@@ -216,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
216
217
  - !ruby/object:Gem::Version
217
218
  version: '0'
218
219
  requirements: []
219
- rubygems_version: 3.4.10
220
+ rubygems_version: 3.5.16
220
221
  signing_key:
221
222
  specification_version: 4
222
223
  summary: Ruby Gem to help with pagination and data formatting at Pattern, Inc.