34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/domain/response/error_handler.rb', line 34
def self.error_info?(response, opts={})
unless errors = response["errors"]
return (opts[:default_error_if_nil] && error_info_default())
end
errors = errors.first["errors"] if errors.is_a?(Array) && errors.first["errors"]
error_msg = ""
error_internal = nil
error_backtrace = nil
error_code = nil
error_on_server = nil
errors.each do |err|
error_msg += err["message"] unless err["message"].nil?
error_msg += err["error"] unless err["error"].nil?
error_msg += OsUtil.remove_html_tags(err["original_exception"].to_s) unless err["original_exception"].nil?
error_on_server = true unless err["on_client"]
error_code = err["code"]||(err["errors"] && err["errors"].first["code"])
error_internal ||= (err["internal"] or error_code == "not_found") error_backtrace ||= err["backtrace"]
end
if error_msg.empty?
DtkLogger.instance.error("Error info could not be extracted from following response: " + response.to_s)
end
error_msg = error_msg.empty? ? DefaultErrorMsg : "#{error_msg}"
unless error_code and SpecificErrorCodes.include?(error_code)
error_code =
if error_internal
error_on_server ? :server_error : :client_error
else
DefaultErrorCode
end
end
error_code = error_code.to_sym
Info.new(error_msg,error_code,error_backtrace)
end
|