rack-graphql 2.2.1 → 2.3.0

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: 47a62b744316bad0bebd1d5016bd506a8927322cce95d4df7b81bf93b480d779
4
- data.tar.gz: 3a42f2f0f8886a628b6f8f0cebf3d268ad5ec668e267f949c10da364d15df805
3
+ metadata.gz: 19eaa68b6aad14dfbfe885f5853e1697a81549d278508ea3ba997894b160f686
4
+ data.tar.gz: 68e94bab40fbf24668dd55074698128e3f8014208a1fa8e6fa82330584bc4a29
5
5
  SHA512:
6
- metadata.gz: 41be36de74a80a87ff07a876f5e6e2b1a428438786693e10b61815faf9d98477cd8e959729ce0063cea0c7bb9d37fcf5d75fd42f7ef6339da45162739525d18d
7
- data.tar.gz: 7714e9edd009252d252350e9704dd46ec70c859e05a646537b8f86ef30e9be4dcb56b8389d2d7334c471d1cd25df430d82694f99941ee5715a163676e488f6cf
6
+ metadata.gz: a349fc1e92684778a146af524b4e179cf10abbbe156b5a7f28b44d8860a008c7b18b2159f59327b9bbe4de20c2caa5eed7ecc908031e71b175a7ba850a01cfc6
7
+ data.tar.gz: 3d6ad7f221c8606175778807a7c5d09f3a534c9131eea1d8bf350552146fdec1517a3499cb073dc1295738fa849bc6721285101769e7c01049ea713ac32ab88b
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 2.3.0 - 2020-09-39
4
+
5
+ - Add `error_status_code_map` option to `RackGraphql::Application`. It allows for return custom http code when specific errors are raised.
6
+
3
7
  ## 2.2.1 - 2020-09-14
4
8
 
5
9
  - Rename `source_app` to `app_name` in error payload.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-graphql (2.2.1)
4
+ rack-graphql (2.3.0)
5
5
  graphql (~> 1.11)
6
6
  oj
7
7
  rack (~> 2.2)
@@ -17,7 +17,7 @@ GEM
17
17
  method_source (1.0.0)
18
18
  oj (3.10.14)
19
19
  parallel (1.19.2)
20
- parser (2.7.1.4)
20
+ parser (2.7.1.5)
21
21
  ast (~> 2.4.1)
22
22
  pry (0.13.1)
23
23
  coderay (~> 1.1)
@@ -27,7 +27,7 @@ GEM
27
27
  rack (>= 1.0, < 3)
28
28
  rainbow (3.0.0)
29
29
  rake (13.0.1)
30
- regexp_parser (1.7.1)
30
+ regexp_parser (1.8.1)
31
31
  rexml (3.2.4)
32
32
  rspec (3.9.0)
33
33
  rspec-core (~> 3.9.0)
@@ -42,19 +42,20 @@ GEM
42
42
  diff-lcs (>= 1.2.0, < 2.0)
43
43
  rspec-support (~> 3.9.0)
44
44
  rspec-support (3.9.3)
45
- rubocop (0.90.0)
45
+ rubocop (0.92.0)
46
46
  parallel (~> 1.10)
47
- parser (>= 2.7.1.1)
47
+ parser (>= 2.7.1.5)
48
48
  rainbow (>= 2.2.2, < 4.0)
49
49
  regexp_parser (>= 1.7)
50
50
  rexml
51
- rubocop-ast (>= 0.3.0, < 1.0)
51
+ rubocop-ast (>= 0.5.0)
52
52
  ruby-progressbar (~> 1.7)
53
53
  unicode-display_width (>= 1.4.0, < 2.0)
54
- rubocop-ast (0.3.0)
55
- parser (>= 2.7.1.4)
56
- rubocop-performance (1.8.0)
54
+ rubocop-ast (0.7.1)
55
+ parser (>= 2.7.1.5)
56
+ rubocop-performance (1.8.1)
57
57
  rubocop (>= 0.87.0)
58
+ rubocop-ast (>= 0.4.0)
58
59
  rubocop-rspec (1.43.2)
59
60
  rubocop (~> 0.87)
60
61
  ruby-progressbar (1.10.1)
@@ -7,7 +7,8 @@ module RackGraphql
7
7
  context_handler: nil,
8
8
  log_exception_backtrace: RackGraphql.log_exception_backtrace,
9
9
  health_route: true,
10
- health_response_builder: RackGraphql::HealthResponseBuilder
10
+ health_response_builder: RackGraphql::HealthResponseBuilder,
11
+ error_status_code_map: {}
11
12
  )
12
13
 
13
14
  ::Rack::Builder.new do
@@ -18,6 +19,7 @@ module RackGraphql
18
19
  context_handler: context_handler,
19
20
  logger: logger,
20
21
  log_exception_backtrace: log_exception_backtrace,
22
+ error_status_code_map: error_status_code_map,
21
23
  )
22
24
  end
23
25
 
@@ -1,11 +1,22 @@
1
1
  module RackGraphql
2
2
  class Middleware
3
- def initialize(schema:, app_name: nil, context_handler: nil, logger: nil, log_exception_backtrace: RackGraphql.log_exception_backtrace)
3
+ DEFAULT_ERROR_STATUS_CODE = 500
4
+
5
+ def initialize(
6
+ schema:,
7
+ app_name: nil,
8
+ context_handler: nil,
9
+ logger: nil,
10
+ log_exception_backtrace: RackGraphql.log_exception_backtrace,
11
+ error_status_code_map: {}
12
+ )
13
+
4
14
  @schema = schema
5
15
  @app_name = app_name
6
16
  @context_handler = context_handler || ->(_) {}
7
17
  @logger = logger
8
18
  @log_exception_backtrace = log_exception_backtrace
19
+ @error_status_code_map = error_status_code_map
9
20
  end
10
21
 
11
22
  def call(env)
@@ -45,7 +56,7 @@ module RackGraphql
45
56
  env[Rack::RACK_ERRORS].puts(exception_string)
46
57
  env[Rack::RACK_ERRORS].flush
47
58
  [
48
- 500,
59
+ error_status_code_map[e.class] || DEFAULT_ERROR_STATUS_CODE,
49
60
  { 'Content-Type' => 'application/json' },
50
61
  [Oj.dump('errors' => [exception_hash(e)])]
51
62
  ]
@@ -55,7 +66,7 @@ module RackGraphql
55
66
 
56
67
  private
57
68
 
58
- attr_reader :schema, :app_name, :logger, :context_handler, :log_exception_backtrace
69
+ attr_reader :schema, :app_name, :logger, :context_handler, :log_exception_backtrace, :error_status_code_map
59
70
 
60
71
  def post_request?(env)
61
72
  env['REQUEST_METHOD'] == 'POST'
@@ -1,3 +1,3 @@
1
1
  module RackGraphql
2
- VERSION = '2.2.1'.freeze
2
+ VERSION = '2.3.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2020-09-14 00:00:00.000000000 Z
12
+ date: 2020-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: graphql