rack-graphql 2.0.0.rc → 2.2.1

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: 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: