Class: SmartsApi::EvaluateMessage
- Inherits:
-
Message
- Object
- Message
- SmartsApi::EvaluateMessage
show all
- Defined in:
- lib/smarts_api/message/evaluate_message.rb
Instance Attribute Summary
Attributes inherited from Message
#logger
Instance Method Summary
collapse
Methods inherited from Message
#encode_hash, #hex_string_to_ascii, #initialize, #make_form, #method, #sign_request, #timestamp
Instance Method Details
#request_document(session, member, decision) ⇒ Object
42
43
44
45
46
|
# File 'lib/smarts_api/message/evaluate_message.rb', line 42
def request_document(session, member, decision)
doc = {:OperationId =>1 , :Header => {:SessionId => session, :DecisionId => decision}, :Body => {:Documents => []}}
doc[:Body][:Documents] = member.smarts_document
return doc.to_json
end
|
#request_params(session, member, decision) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/smarts_api/message/evaluate_message.rb', line 29
def request_params(session, member, decision)
params = {
:appId => app_id,
:reqData => request_document(session, member, decision),
:reqTime => timestamp,
:session => session
}
signature = {
:sign => sign_request(params)
}
return params.merge(signature)
end
|
#send(session, member, decision) ⇒ Object
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/smarts_api/message/evaluate_message.rb', line 3
def send(session, member, decision)
body = make_form(request_params(session, member, decision))
logger.info "Evaluating" if logger.respond_to?(:info)
response = Typhoeus::Request.post(uri,
:method => method,
:headers => {:Accept => "text/json"},
:body => body
)
raise SmartsApi::Error, "Rules Evaluation failed failed. Recieved empty reply" if response.nil? || response.body.blank?
reply = JSON.parse(response.body)
raise SmartsApi::Error, "Rules Evaluation failed failed. Received malformed response." unless reply["Header"] && ["Body"]
body = reply["Body"]
if body.blank?
logger.info "Rules Engine Evaluation failed. \n\n #{body} \n\n #{response.body}" if logger.respond_to?(:info)
raise SmartsApi::Error, "Rules Evaluation failed. Returned JSON is blank."
end
logger.info "Updating issues" if logger.respond_to?(:info)
member.process_smarts_response body
return body
end
|
#uri ⇒ Object
48
49
50
|
# File 'lib/smarts_api/message/evaluate_message.rb', line 48
def uri
"#{base_uri}evaluate"
end
|