rack-graphql 2.0.0.rc → 2.2.1

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: 1075eb9d4a87a4e94b555c8b7f60a6a36c8369b2ff0d60a8e7be9db675f47494
4
- data.tar.gz: ae1137154106d644ee012734ed0d5d21ac11412fb55a4ba12394bdc26e57b873
3
+ metadata.gz: 47a62b744316bad0bebd1d5016bd506a8927322cce95d4df7b81bf93b480d779
4
+ data.tar.gz: 3a42f2f0f8886a628b6f8f0cebf3d268ad5ec668e267f949c10da364d15df805
5
5
  SHA512:
6
- metadata.gz: 2eeb4e9eed9cf0030651c30d6ef16bb53f14ece2cf2f94c36f162d13d3732fe53e699e64b59d2d807b2d64386453d21627f3f718a50db99e10ab74f1fa2c9c20
7
- data.tar.gz: efe2f531123d657e2480a08f4d0b898d9cda4fea50bbe9422faaeb4fc0d4d3ddec13c93c54c4aae5a9792d7bece88652cb35bdeca82bfdbdf315f6c9df724427
6
+ metadata.gz: 41be36de74a80a87ff07a876f5e6e2b1a428438786693e10b61815faf9d98477cd8e959729ce0063cea0c7bb9d37fcf5d75fd42f7ef6339da45162739525d18d
7
+ data.tar.gz: 7714e9edd009252d252350e9704dd46ec70c859e05a646537b8f86ef30e9be4dcb56b8389d2d7334c471d1cd25df430d82694f99941ee5715a163676e488f6cf
@@ -1,6 +1,18 @@
1
1
  # CHANGELOG
2
2
 
3
- ## 2.0.0.rc - 2020-09-11
3
+ ## 2.2.1 - 2020-09-14
4
+
5
+ - Rename `source_app` to `app_name` in error payload.
6
+
7
+ ## 2.2.0 - 2020-09-14
8
+
9
+ - Add `source_app` to error payload.
10
+
11
+ ## 2.1.0 - 2020-09-14
12
+
13
+ - Add `log_exception_backtrace` option to `RackGraphql::Application`
14
+
15
+ ## 2.0.0 - 2020-09-14
4
16
 
5
17
  - Catch all exceptions raised by the app respond with 500 status codea and json content type
6
18
  - Add ability to not log exception backtrace with `RackGraphql.log_exception_backtrace = false`
@@ -1,15 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rack-graphql (2.0.0.rc)
5
- graphql (~> 1.9)
4
+ rack-graphql (2.2.1)
5
+ graphql (~> 1.11)
6
6
  oj
7
- rack (~> 2.0)
7
+ rack (~> 2.2)
8
8
 
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
12
  ast (2.4.1)
13
+ awesome_print (1.8.0)
13
14
  coderay (1.1.3)
14
15
  diff-lcs (1.4.4)
15
16
  graphql (1.11.4)
@@ -63,6 +64,7 @@ PLATFORMS
63
64
  ruby
64
65
 
65
66
  DEPENDENCIES
67
+ awesome_print
66
68
  bundler
67
69
  pry
68
70
  rack-graphql!
data/README.md CHANGED
@@ -23,11 +23,12 @@ Add following to your `config.ru` file:
23
23
 
24
24
  ```ruby
25
25
  run RackGraphql::Application.call(
26
- schema: YourGraqphqlSchema, # required
27
- app_name: 'your-service-name', # optional, used for health endpoint content
28
- context_handler: YourGraphqlContextHandler, # optional, empty `proc` by default
29
- health_route: true, # optional, true by default
30
- logger: A9n.logger, # optional, not set by default
26
+ schema: YourGraqphqlSchema, # required
27
+ app_name: 'your-service-name', # optional, used for health endpoint content
28
+ context_handler: YourGraphqlContextHandler, # optional, empty `proc` by default
29
+ log_exception_backtrace: !A9n.env.production?, # optional, `true` default
30
+ health_route: true, # optional, true by default
31
+ logger: A9n.logger, # optional, not set by default
31
32
  )
32
33
  ```
33
34
 
data/Rakefile CHANGED
@@ -5,4 +5,4 @@ require 'rubocop/rake_task'
5
5
  RSpec::Core::RakeTask.new(:spec)
6
6
  RuboCop::RakeTask.new
7
7
 
8
- task default: %i[rubocop:auto_correct spec]
8
+ task default: %i[spec rubocop:auto_correct]
@@ -1,11 +1,24 @@
1
1
  module RackGraphql
2
2
  class Application
3
- def self.call(schema:, app_name: 'rack-graphql-service', logger: nil, context_handler: nil,
4
- health_route: true, health_response_builder: RackGraphql::HealthResponseBuilder)
3
+ def self.call(
4
+ schema:,
5
+ app_name: 'rack-graphql-service',
6
+ logger: nil,
7
+ context_handler: nil,
8
+ log_exception_backtrace: RackGraphql.log_exception_backtrace,
9
+ health_route: true,
10
+ health_response_builder: RackGraphql::HealthResponseBuilder
11
+ )
5
12
 
6
13
  ::Rack::Builder.new do
7
14
  map '/graphql' do
8
- run RackGraphql::Middleware.new(schema: schema, context_handler: context_handler, logger: logger)
15
+ run RackGraphql::Middleware.new(
16
+ app_name: app_name,
17
+ schema: schema,
18
+ context_handler: context_handler,
19
+ logger: logger,
20
+ log_exception_backtrace: log_exception_backtrace,
21
+ )
9
22
  end
10
23
 
11
24
  if health_route
@@ -1,9 +1,11 @@
1
1
  module RackGraphql
2
2
  class Middleware
3
- def initialize(schema:, logger: nil, context_handler: nil)
3
+ def initialize(schema:, app_name: nil, context_handler: nil, logger: nil, log_exception_backtrace: RackGraphql.log_exception_backtrace)
4
4
  @schema = schema
5
- @logger = logger
5
+ @app_name = app_name
6
6
  @context_handler = context_handler || ->(_) {}
7
+ @logger = logger
8
+ @log_exception_backtrace = log_exception_backtrace
7
9
  end
8
10
 
9
11
  def call(env)
@@ -45,7 +47,7 @@ module RackGraphql
45
47
  [
46
48
  500,
47
49
  { 'Content-Type' => 'application/json' },
48
- [Oj.dump(errors: [{ message: exception_string }])]
50
+ [Oj.dump('errors' => [exception_hash(e)])]
49
51
  ]
50
52
  ensure
51
53
  ActiveRecord::Base.clear_active_connections! if defined?(ActiveRecord::Base)
@@ -53,7 +55,7 @@ module RackGraphql
53
55
 
54
56
  private
55
57
 
56
- attr_reader :schema, :logger, :context_handler
58
+ attr_reader :schema, :app_name, :logger, :context_handler, :log_exception_backtrace
57
59
 
58
60
  def post_request?(env)
59
61
  env['REQUEST_METHOD'] == 'POST'
@@ -151,8 +153,16 @@ module RackGraphql
151
153
  # Based on https://github.com/rack/rack/blob/master/lib/rack/show_exceptions.rb
152
154
  def dump_exception(exception)
153
155
  string = "#{exception.class}: #{exception.message}\n"
154
- string << exception.backtrace.map { |l| "\t#{l}" }.join("\n") if RackGraphql.log_exception_backtrace
156
+ string << exception.backtrace.map { |l| "\t#{l}" }.join("\n") if log_exception_backtrace
155
157
  string
156
158
  end
159
+
160
+ def exception_hash(exception)
161
+ {
162
+ 'app_name' => app_name,
163
+ 'message' => "#{exception.class}: #{exception.message}",
164
+ 'backtrace' => log_exception_backtrace ? exception.backtrace : "[FILTERED]"
165
+ }
166
+ end
157
167
  end
158
168
  end
@@ -1,3 +1,3 @@
1
1
  module RackGraphql
2
- VERSION = '2.0.0.rc'.freeze
2
+ VERSION = '2.2.1'.freeze
3
3
  end
@@ -24,10 +24,11 @@ Gem::Specification.new do |spec|
24
24
 
25
25
  spec.required_ruby_version = '>= 2.6'
26
26
 
27
- spec.add_dependency 'graphql', '~> 1.9'
27
+ spec.add_dependency 'graphql', '~> 1.11'
28
28
  spec.add_dependency 'oj'
29
- spec.add_dependency 'rack', '~> 2.0'
29
+ spec.add_dependency 'rack', '~> 2.2'
30
30
 
31
+ spec.add_development_dependency 'awesome_print'
31
32
  spec.add_development_dependency 'bundler'
32
33
  spec.add_development_dependency 'pry'
33
34
  spec.add_development_dependency 'rack-test'
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.0.0.rc
4
+ version: 2.2.1
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-11 00:00:00.000000000 Z
12
+ date: 2020-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: graphql
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.9'
20
+ version: '1.11'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.9'
27
+ version: '1.11'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: oj
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -45,14 +45,28 @@ dependencies:
45
45
  requirements:
46
46
  - - "~>"
47
47
  - !ruby/object:Gem::Version
48
- version: '2.0'
48
+ version: '2.2'
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
53
  - - "~>"
54
54
  - !ruby/object:Gem::Version
55
- version: '2.0'
55
+ version: '2.2'
56
+ - !ruby/object:Gem::Dependency
57
+ name: awesome_print
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
56
70
  - !ruby/object:Gem::Dependency
57
71
  name: bundler
58
72
  requirement: !ruby/object:Gem::Requirement
@@ -213,9 +227,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
227
  version: '2.6'
214
228
  required_rubygems_version: !ruby/object:Gem::Requirement
215
229
  requirements:
216
- - - ">"
230
+ - - ">="
217
231
  - !ruby/object:Gem::Version
218
- version: 1.3.1
232
+ version: '0'
219
233
  requirements: []
220
234
  rubygems_version: 3.1.2
221
235
  signing_key: