rack-graphql 2.2.1 → 2.3.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
  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