Class: Response::YTAnalytics
- Inherits:
-
Middleware
- Object
- Middleware
- Response::YTAnalytics
- Defined in:
- lib/yt_analytics/middleware/faraday_yt_analytics.rb
Instance Method Summary collapse
-
#on_complete(env) ⇒ Object
this method is called after finish request.
- #parse_upload_error_from(string) ⇒ Object
Instance Method Details
#on_complete(env) ⇒ Object
this method is called after finish request
22 23 24 25 26 27 28 29 |
# File 'lib/yt_analytics/middleware/faraday_yt_analytics.rb', line 22 def on_complete(env) #this method is called after finish request msg = env[:body] ? parse_upload_error_from(env[:body].gsub(/\n/, '')) : '' if env[:status] == 403 || env[:status] == 401 raise ::AuthenticationError.new(msg, env[:status]) elsif env[:status] / 10 != 20 raise ::UploadError.new(msg, env[:status]) end end |
#parse_upload_error_from(string) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/yt_analytics/middleware/faraday_yt_analytics.rb', line 3 def parse_upload_error_from(string) xml = Nokogiri::XML(string).at('errors') if xml xml.css("error").inject('') do |all_faults, error| if error.at("internalReason") msg_error = error.at("internalReason").text elsif error.at("location") msg_error = error.at("location").text[/media:group\/media:(.*)\/text\(\)/,1] else msg_error = "Unspecified error" end code = error.at("code").text if error.at("code") all_faults + sprintf("%s: %s\n", msg_error, code) end else string[/<TITLE>(.+)<\/TITLE>/, 1] || string end end |