jsonapi-scopes 0.1.4 → 0.1.5

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: dbd3c67cc76780a390bc9c1e7208cc1d5bc034dcc0f59805837214fe43a3cd6d
4
- data.tar.gz: 606d6ac99828abca9b7a8e0a47f7933b52920ca7782733f9cff9a8f5c06dc116
3
+ metadata.gz: f075448aaf618ba2255c5151450468f37499c0d7342cd2ca779815e4acacc0a4
4
+ data.tar.gz: 5e7e5c7da233d4fa8cb0e4d9c3cd8ee557fa58e924913d1f1e4da71b1378df5b
5
5
  SHA512:
6
- metadata.gz: 9107728d745f6621bf75723bf72eb6888384545c2e81b905c4eff00139f372c6695ec7f944b13fee3df149387902729ed616161592980b3d1c5eac17aa6a2b51
7
- data.tar.gz: ff19b9dc96b11ec88fe902cc0861a3fd387623820c49c85251727ec74a38c2c94d18459bb178adae222e247408ff6c8410f45c25421d86511df4541fd7bbcb9d
6
+ metadata.gz: e52d2884d6c08014c8b72ab0f7ee0f16b919ae4202b8c8c5c50d9d43524f2cdb61142cffafd8b656d53cf42a3d8c1fa74ff333e6f494d45b74fcaffaef8ddd5c
7
+ data.tar.gz: d0a49696d8c1bb82eeb82b58b0738af53a2dda209cda4ed327b2a5f176a78b1f30f96957a0eb1d3373d57f6b2720457778c60426f082d9e60b8cd53877937984
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Jsonapi
4
+ module Include
5
+ extend ActiveSupport::Concern
6
+
7
+ included do
8
+ @includes ||= []
9
+ end
10
+
11
+ module ClassMethods
12
+ def includes(name)
13
+ @includes << name
14
+ end
15
+
16
+ def apply_includes(params)
17
+ records = all
18
+ filtering_params = params.dig(:filter) || {}
19
+
20
+ filtering_params.each do |key, value|
21
+ value = value.to_s.split(',').reject(&:blank?)
22
+
23
+ records = records.public_send(key, value) if @includes.include?(key.to_sym)
24
+ end
25
+
26
+ records
27
+ end
28
+ end
29
+ end
30
+ end
@@ -21,7 +21,7 @@ module Jsonapi
21
21
  def apply_sort(params = {}, options = { allowed: [], default: {} })
22
22
  fields = params.dig(:sort)
23
23
 
24
- allowed_fields = [options[:allowed]].flatten.presence || @sortable_fields
24
+ allowed_fields = Array.wrap(options[:allowed]).presence || @sortable_fields
25
25
  allowed_fields = allowed_fields.map(&:to_sym)
26
26
 
27
27
  default_order = options[:default].presence || @default_sort
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jsonapi
4
4
  module Scopes
5
- VERSION = '0.1.4'
5
+ VERSION = '0.1.5'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonapi-scopes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillaume Briday
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-17 00:00:00.000000000 Z
11
+ date: 2019-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -50,6 +50,7 @@ files:
50
50
  - Rakefile
51
51
  - lib/jsonapi/scopes.rb
52
52
  - lib/jsonapi/scopes/filters.rb
53
+ - lib/jsonapi/scopes/includes.rb
53
54
  - lib/jsonapi/scopes/sorts.rb
54
55
  - lib/jsonapi/scopes/version.rb
55
56
  homepage: https://github.com/guillaumebriday/jsonapi-scopes