grape-listing 1.1.9 → 1.1.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d4640c1fef7edd90ba2d131032ba1f8ee8d5edf276d8a703f114b7d944e0ef52
4
- data.tar.gz: c5cccf46f30fddf0fa7bf7b9f128e42fc6a6fe3291c941a302ea4c440e34e726
3
+ metadata.gz: 216dc8cc1fddbb989a7b093569bb9acf2c085b52a74d3a0bdfffed84ad2a48c8
4
+ data.tar.gz: 9a8a054586ff87f8c00cabfdab4002282eb1dc1b0bea57bdd876ed5e39f4abe5
5
5
  SHA512:
6
- metadata.gz: 96658857f1c6b6f2eecc2b45417c2240dad18880ae87dd6e0d9522f468fcda24ab50bfc9cb20762166e664f0a1b2f78739122c8c5041783914a7ef4c9f8e7478
7
- data.tar.gz: 38681ed959270122c72573669b9ba6d92bf534adace4b99ee948e1f2e25580e9d9da6056229c3484a23a53f21c735c1d93414714c5c6ec42617be32cbec70c64
6
+ metadata.gz: 906c4e171bea8562f8a77e6b50eb2c742e39452ce10d81067a3cf4649e15294229eea1d4e587c724f3782c2337e3293095241d621c71a88e0d0707d1839a39bb
7
+ data.tar.gz: eace61cdf1afa188cf656c89b5fce3eeaf56d54ccd0be4ec008b43d9cf5216e2f1e26e6055ccc60767ff07551776854a5d721a954293d8fb40f3cc7bc3918381
data/README.md CHANGED
@@ -26,8 +26,7 @@ bundle
26
26
  ```ruby
27
27
  get 'users' do
28
28
  listing model: User,
29
- entity: UserEntity,
30
- search: %w[email name|ilike role|custom.for_role]
29
+ entity: UserEntity
31
30
  end
32
31
 
33
32
  ```
@@ -52,7 +51,24 @@ end
52
51
 
53
52
  ### Поиск
54
53
 
55
- Для поиска по полям необходимо передать их в запросе в виде `?field=value`. Для поиска по нескольким полям, параметры должны быть перечислены через `&`, например: `?field_1=value&field_2=value`.
54
+ Для возможности поиска необходимо передать названия полей, по которым может осуществляться поиск, в виде массива в опции `search`.
55
+
56
+ Для осуществления фильтрации необходимо передать параметры в запросе в виде `?field=value`. Для поиска по нескольким полям, параметры должны быть перечислены через `&`, например: `?field_1=value&field_2=value`.
57
+
58
+ В общем случае, названия полей соответствуют названиями параметров (например поле `name` и параметр `name`).
59
+
60
+ Пример использования с осуществлением поиска по полю `name` с полным совпадением:
61
+
62
+ ```ruby
63
+ get 'users' do
64
+ listing model: User,
65
+ entity: UserEntity,
66
+ search: %w[name]
67
+ end
68
+ ```
69
+ ```
70
+ GET http://localhost:3000/api/users?name=Ivan
71
+ ```
56
72
 
57
73
  ### Сортировка
58
74
 
@@ -69,6 +69,13 @@ module GrapeListing
69
69
  end
70
70
 
71
71
  def count_cache_key
72
+ # необходимо убрать параметры offset и page из uri
73
+ uri_path, params = @request_uri.split('?')
74
+ if params
75
+ params = Rack::Utils.parse_query(params).except('offset', 'page')
76
+ @request_uri = params.present? ? "#{uri_path}?#{Rack::Utils.build_query(params)}" : uri_path
77
+ end
78
+
72
79
  # пример: "GET api/v1/users?active=true"
73
80
  body = "#{@request_method} #{@request_uri}"
74
81
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-listing
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.9
4
+ version: 1.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-27 00:00:00.000000000 Z
11
+ date: 2024-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack