json_api_toolbox 1.3.0 → 1.4.0

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
  SHA1:
3
- metadata.gz: af58f7d3d2dc113db2fd9a34cad4e6861aee871f
4
- data.tar.gz: 93a83be02bb1c09da703f1aa274a9005761f8b6f
3
+ metadata.gz: 7449efd8dd09c17235fcb78b359a4bd7050851a6
4
+ data.tar.gz: c1a744a1eefa42bc00a6bd6cc8172df8a287f008
5
5
  SHA512:
6
- metadata.gz: 90a1513719aa4bfe47a83dd800c1e23d0a12bb9856ca1b490d90a564b2d3d3928052fb4ca85ab6cbd9585349481c5de14a95b2f0a2e86fa5284de7eaa635983f
7
- data.tar.gz: 4365c231d6a15e8f55509270011d09203cb0e3b47c9bb5024caeee7795a3d0b7f5a9d400166ed1c568f63e852204623556991606ecd562061106b58015158dc7
6
+ metadata.gz: 90b05221b72edaef537bbf173313ed6159db759203187b7aa2b3b3211a1403e20896e892cb91bb11aaf7534b4c8c56c7982aea99ff053b112eef3312d49124f6
7
+ data.tar.gz: b5ba639f2fa06caeda67ecaaa5b87b01aeaba2cadcc7b99e2249b1dd40053c48c0a45a83bbdf6f979e2c62eb29c320b31bb9c1cba0a14b81c682ce3cbd5aaa1d
@@ -6,15 +6,16 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
6
6
  require 'json_api_toolbox/version'
7
7
 
8
8
  Gem::Specification.new do |spec|
9
- spec.name = 'json_api_toolbox'
10
- spec.version = JsonApiToolbox::VERSION
11
- spec.authors = ['Adriano Bacha']
12
- spec.email = ['abacha@gmail.com']
9
+ spec.required_ruby_version = '>= 2.4.0'
10
+ spec.name = 'json_api_toolbox'
11
+ spec.version = JsonApiToolbox::VERSION
12
+ spec.authors = ['Adriano Bacha']
13
+ spec.email = ['abacha@gmail.com']
13
14
 
14
- spec.summary = 'Json API usefull tools'
15
- spec.homepage = 'http://bitbucket.org/guideinvestimentos/json_api_toolbox'
15
+ spec.summary = 'Json API usefull tools'
16
+ spec.homepage = 'http://bitbucket.org/guideinvestimentos/json_api_toolbox'
16
17
 
17
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
19
  f.match(%r{^(test|spec|features)/})
19
20
  end
20
21
  spec.require_paths = ['lib']
@@ -22,8 +23,8 @@ Gem::Specification.new do |spec|
22
23
  spec.add_dependency 'actionpack', '>= 4.0.0'
23
24
  spec.add_dependency 'activerecord', '>= 4.0.0'
24
25
  spec.add_dependency 'activesupport', '>= 4.0.0'
25
- spec.add_dependency 'json-api-vanilla', '~> 1.0.1'
26
26
  spec.add_dependency 'jsonapi-serializable', '>= 0.3.0'
27
+ spec.add_dependency 'json-api-vanilla', '~> 1.0.1'
27
28
  spec.add_dependency 'log_toolbox', '>= 1.0.0'
28
29
  spec.add_dependency 'request_store', '~> 1.3.2'
29
30
  spec.add_dependency 'rest-client', '>= 2.0.1'
@@ -2,6 +2,9 @@
2
2
 
3
3
  module JsonApiToolbox
4
4
  module Paginable
5
+ DEFAULT_PER_PAGE = 20
6
+ MAX_PER_PAGE = 100
7
+
5
8
  def pagination_meta(collection_resource)
6
9
  {
7
10
  'current-page': collection_resource.current_page,
@@ -30,9 +33,18 @@ module JsonApiToolbox
30
33
  end
31
34
  end
32
35
 
36
+ def per_page
37
+ return DEFAULT_PER_PAGE if params[:per_page].nil?
38
+
39
+ per_page_limit = (ENV['MAX_PER_PAGE'] || MAX_PER_PAGE).to_i
40
+
41
+ [per_page_limit, params[:per_page].to_i].min
42
+ end
43
+
44
+ private
45
+
33
46
  def create_page_link(link, page)
34
- link_path = collection_resource_path(page: page,
35
- per_page: params[:per_page])
47
+ link_path = collection_resource_path(page: page, per_page: per_page)
36
48
  { link => link_path }
37
49
  end
38
50
 
@@ -37,10 +37,11 @@ module JsonApiToolbox
37
37
  let(:model_keys) do
38
38
  enums = []
39
39
  model.new.attributes.keys.map do |attr|
40
- if attr.match?(/_cd$/)
40
+ case attr
41
+ when /_cd$/
41
42
  enums << attr
42
43
  attr.gsub(/_cd/, '')
43
- elsif attr.match?(/_id$|^id$/)
44
+ when /_id$|^id$/
44
45
  nil
45
46
  else
46
47
  attr
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JsonApiToolbox
4
- VERSION = '1.3.0'
4
+ VERSION = '1.4.0'
5
5
  end
@@ -20,9 +20,9 @@ module JsonApiToolbox
20
20
  def fields
21
21
  return {} unless fields?
22
22
 
23
- params[:fields].permit!.to_h.map do |field, attributes|
24
- [field, attributes.split(',')]
25
- end.to_h
23
+ params[:fields].permit!.to_h.transform_values do |attributes|
24
+ attributes.split(',')
25
+ end
26
26
  end
27
27
 
28
28
  def permitted_params
@@ -82,9 +82,8 @@ module JsonApiToolbox
82
82
  end
83
83
 
84
84
  def build_error_options(object, options)
85
- if options[:status].blank?
86
- options = options.merge(status: :unprocessable_entity)
87
- end
85
+ options = options.merge(status: :unprocessable_entity) if options[:status].blank?
86
+
88
87
  { jsonapi_errors: object.errors }.merge(options)
89
88
  end
90
89
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: json_api_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adriano Bacha
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-19 00:00:00.000000000 Z
11
+ date: 2020-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -53,33 +53,33 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 4.0.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: json-api-vanilla
56
+ name: jsonapi-serializable
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.1
61
+ version: 0.3.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.1
68
+ version: 0.3.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: jsonapi-serializable
70
+ name: json-api-vanilla
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 0.3.0
75
+ version: 1.0.1
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 0.3.0
82
+ version: 1.0.1
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: log_toolbox
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -289,7 +289,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
289
289
  requirements:
290
290
  - - ">="
291
291
  - !ruby/object:Gem::Version
292
- version: '0'
292
+ version: 2.4.0
293
293
  required_rubygems_version: !ruby/object:Gem::Requirement
294
294
  requirements:
295
295
  - - ">="