grape-batch 1.1.4 → 1.2.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 +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/grape/batch/version.rb +1 -1
- data/lib/grape/batch.rb +27 -20
- metadata +2 -3
- data/lib/grape/batch/log_subscriber.rb +0 -64
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c814c50a907a565423f1154df0315082ce01b368
|
4
|
+
data.tar.gz: 3d6a2ecc29a6e0e11903c126618095c3154b6818
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c0ca65a811be6de53282bf1b112195a06f6aaa0c922a5facee2f59c896f2bf346988d456a0a0bdc85c3eed09fccbd587dc395fcb27f3b61cffac75870515caa1
|
7
|
+
data.tar.gz: 6e05351a95f28d24fe58451dfdc08f20fdb9ead667c4bdfdb0426124499b424e209e502c21fb861692036e4a79eaa12f210ac4727d1c3283af573b565458786a
|
data/CHANGELOG.md
CHANGED
data/lib/grape/batch/version.rb
CHANGED
data/lib/grape/batch.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'active_support'
|
2
|
-
require 'grape/batch/log_subscriber'
|
3
2
|
require 'grape/batch/version'
|
4
3
|
require 'grape/batch/errors'
|
5
4
|
require 'grape/batch/configuration'
|
@@ -24,7 +23,7 @@ module Grape
|
|
24
23
|
def batch_call(env)
|
25
24
|
status = 200
|
26
25
|
headers = { 'Content-Type' => 'application/json' }
|
27
|
-
|
26
|
+
logger.info('--- Grape::Batch BEGIN')
|
28
27
|
begin
|
29
28
|
batch_requests = Grape::Batch::Validator::parse(env, Grape::Batch.configuration.limit)
|
30
29
|
result = dispatch(env, batch_requests)
|
@@ -33,7 +32,7 @@ module Grape
|
|
33
32
|
e.class == TooManyRequestsError ? status = 429 : status = 400
|
34
33
|
body = e.message
|
35
34
|
end
|
36
|
-
|
35
|
+
logger.info('--- Grape::Batch END')
|
37
36
|
[status, headers, [body]]
|
38
37
|
end
|
39
38
|
|
@@ -46,25 +45,18 @@ module Grape
|
|
46
45
|
end
|
47
46
|
|
48
47
|
def dispatch(env, batch_requests)
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
session_data = env[Grape::Batch.configuration.session_header]
|
53
|
-
env['api.session'] = Grape::Batch.configuration.session_proc.call(session_data)
|
48
|
+
session_data = env[Grape::Batch.configuration.session_header]
|
49
|
+
env['api.session'] = Grape::Batch.configuration.session_proc.call(session_data)
|
54
50
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
51
|
+
# iterate
|
52
|
+
batch_env = env.dup
|
53
|
+
batch_requests.map do |request|
|
54
|
+
# init env for Grape resource
|
55
|
+
tmp_env = prepare_tmp_env(batch_env, request)
|
56
|
+
status, headers, response = @app.call(tmp_env)
|
61
57
|
|
62
|
-
|
63
|
-
|
64
|
-
# log call
|
65
|
-
event[:requests] << [tmp_env, formatted_response]
|
66
|
-
end
|
67
|
-
end
|
58
|
+
# format response
|
59
|
+
@response_klass::format(status, headers, response)
|
68
60
|
end
|
69
61
|
end
|
70
62
|
|
@@ -87,6 +79,21 @@ module Grape
|
|
87
79
|
tmp_env['rack.input'] = rack_input
|
88
80
|
tmp_env
|
89
81
|
end
|
82
|
+
|
83
|
+
def logger
|
84
|
+
@logger ||= Grape::Batch.configuration.logger || rails_logger || default_logger
|
85
|
+
end
|
86
|
+
|
87
|
+
def default_logger
|
88
|
+
logger = Logger.new($stdout)
|
89
|
+
logger.level = Logger::INFO
|
90
|
+
logger
|
91
|
+
end
|
92
|
+
|
93
|
+
# Get the Rails logger if it's defined.
|
94
|
+
def rails_logger
|
95
|
+
defined?(::Rails) && ::Rails.respond_to?(:logger) && ::Rails.logger
|
96
|
+
end
|
90
97
|
end
|
91
98
|
end
|
92
99
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape-batch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lionel Oto
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-07-
|
13
|
+
date: 2015-07-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rack
|
@@ -148,7 +148,6 @@ files:
|
|
148
148
|
- lib/grape/batch/configuration.rb
|
149
149
|
- lib/grape/batch/errors.rb
|
150
150
|
- lib/grape/batch/hash_converter.rb
|
151
|
-
- lib/grape/batch/log_subscriber.rb
|
152
151
|
- lib/grape/batch/parser.rb
|
153
152
|
- lib/grape/batch/response.rb
|
154
153
|
- lib/grape/batch/version.rb
|
@@ -1,64 +0,0 @@
|
|
1
|
-
module Grape
|
2
|
-
module Batch
|
3
|
-
class LogSubscriber < ActiveSupport::LogSubscriber
|
4
|
-
def dispatch(event)
|
5
|
-
requests = event.payload[:requests]
|
6
|
-
|
7
|
-
if logger.debug?
|
8
|
-
debug_log(requests)
|
9
|
-
else
|
10
|
-
info_log(requests)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def debug_log(requests)
|
17
|
-
logger.info 'grape/batch'
|
18
|
-
|
19
|
-
requests.map do |params|
|
20
|
-
request, response = params
|
21
|
-
logger.info " method=#{request['REQUEST_METHOD']} path=#{request['PATH_INFO']}"
|
22
|
-
|
23
|
-
if request['REQUEST_METHOD'] == 'GET'
|
24
|
-
unless request['QUERY_STRING'].empty?
|
25
|
-
logger.debug " params: #{request['QUERY_STRING'].to_s}"
|
26
|
-
end
|
27
|
-
else
|
28
|
-
if request['rack.input'].respond_to? :string
|
29
|
-
logger.debug " body: #{request['rack.input'].string}"
|
30
|
-
end
|
31
|
-
end
|
32
|
-
logger.debug " response: #{response.to_s}"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def info_log(requests)
|
37
|
-
messages = []
|
38
|
-
requests.each do |params|
|
39
|
-
request, response = params
|
40
|
-
messages << "method=#{request['REQUEST_METHOD']} path=#{request['PATH_INFO']}"
|
41
|
-
end
|
42
|
-
|
43
|
-
logger.info 'grape/batch ' + messages.join(', ')
|
44
|
-
end
|
45
|
-
|
46
|
-
def logger
|
47
|
-
@logger ||= Grape::Batch.configuration.logger || rails_logger || default_logger
|
48
|
-
end
|
49
|
-
|
50
|
-
def default_logger
|
51
|
-
logger = Logger.new($stdout)
|
52
|
-
logger.level = Logger::INFO
|
53
|
-
logger
|
54
|
-
end
|
55
|
-
|
56
|
-
# Get the Rails logger if it's defined.
|
57
|
-
def rails_logger
|
58
|
-
defined?(::Rails) && ::Rails.respond_to?(:logger) && ::Rails.logger
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
Grape::Batch::LogSubscriber.attach_to(:batch)
|