Skip to content

Commit 1ab243f

Browse files
refactor: recude code complexity
1 parent eec0132 commit 1ab243f

File tree

1 file changed

+46
-34
lines changed

1 file changed

+46
-34
lines changed

lib/fluent/plugin/in_http_pull.rb

Lines changed: 46 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -109,60 +109,72 @@ def start
109109
end
110110

111111
def on_timer
112-
record = { "url" => @url }
112+
body = nil
113+
record = nil
113114

114115
begin
115-
request_options = { method: @http_method, url: @url, timeout: @timeout, headers: @_request_headers }
116-
117-
request_options[:proxy] = @proxy if @proxy
118-
request_options[:user] = @user if @user
119-
request_options[:password] = @password if @password
120-
121-
request_options[:verify_ssl] = @verify_ssl
122-
if @verify_ssl and @ca_path and @ca_file
123-
request_options[:ssl_ca_path] = @ca_path
124-
request_options[:ssl_ca_file] = @ca_file
125-
end
126-
127116
res = RestClient::Request.execute request_options
117+
record, body = get_record(res)
128118

129-
record["status"] = res.code
130-
record["body"] = res.body
131-
132-
record["header"] = {} unless @response_headers.empty?
133-
@response_headers.each do |section|
134-
name = section["header"]
135-
symbolize_name = name.downcase.gsub(/-/, '_').to_sym
136-
137-
record["header"][name] = res.headers[symbolize_name]
138-
end
139119
rescue StandardError => err
120+
record = { "url" => @url, "error" => err.message }
140121
if err.respond_to? :http_code
141122
record["status"] = err.http_code || 0
142123
else
143124
record["status"] = 0
144125
end
145-
146-
record["error"] = err.message
147126
end
148127

149128
record_time = Engine.now
150-
151-
if !@status_only && record["body"] != nil
152-
@parser.parse(record["body"]) do |time, message|
153-
record["message"] = message
154-
record_time = time
155-
end
156-
end
157-
158-
record.delete("body")
129+
record = parse(record, body)
159130
router.emit(@tag, record_time, record)
160131
end
161132

162133
def shutdown
163134
super
164135
end
165136

137+
private
138+
def request_options
139+
options = { method: @http_method, url: @url, timeout: @timeout, headers: @_request_headers }
140+
141+
options[:proxy] = @proxy if @proxy
142+
options[:user] = @user if @user
143+
options[:password] = @password if @password
144+
145+
options[:verify_ssl] = @verify_ssl
146+
if @verify_ssl and @ca_path and @ca_file
147+
options[:ssl_ca_path] = @ca_path
148+
options[:ssl_ca_file] = @ca_file
149+
end
150+
151+
return options
152+
end
153+
154+
def get_record(response)
155+
body = response.body
156+
record = { "url" => @url, "status" => response.code }
157+
record["header"] = {} unless @response_headers.empty?
158+
@response_headers.each do |section|
159+
name = section["header"]
160+
symbolize_name = name.downcase.gsub(/-/, '_').to_sym
161+
162+
record["header"][name] = response.headers[symbolize_name]
163+
end
164+
165+
return record, body
166+
end
167+
168+
def parse(record, body)
169+
if !@status_only && body != nil
170+
@parser.parse(body) do |time, message|
171+
record["message"] = message
172+
record_time = time
173+
end
174+
end
175+
176+
return record
177+
end
166178
end
167179
end
168180
end

0 commit comments

Comments
 (0)