86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/qooxview/helpers/icc.rb', line 86
def self.request(entity_name, m, query_json)
m =~ /^icc_/ and log_msg :ICC, "Method #{m} includes 'icc_' - probably not what you want"
binary = m[0] == '_'
method = "icc_#{m.sub(/^_/, '')}"
if en = Object.const_get(entity_name)
dputs(3) { "Sending #{method} to #{entity_name}" }
query={}
begin
query_json.each_pair { |k, v| query[k] = JSON.parse(v.first) }
rescue JSON::ParserError => e
dputs(0) { "Error parsing #{query_json}" }
dputs(0) { "#{e.inspect}" }
dputs(0) { "#{caller.inspect}" }
return self.response('Error', log_msg(:ICC, "Object couldn't be parsed"))
end
dputs(3) { "Found query #{query.inspect}" }
if query.has_key?('icc_data')
query = query._icc_data
dputs(3) { "Found icc_data in query, is now: #{query.inspect}" }
end
msg = en.send(method, query)
if msg =~ /^Error:/
self.response('Error', msg)
else
self.response('OK', binary ? Base64::encode64(msg.force_encoding(Encoding::ASCII_8BIT)) :
msg)
end
else
self.response('Error', log_msg(:ICC, "Object #{entity_name} doesn't exist"))
end
end
|