rule_engine_client 0.1.8 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rule_engine_client.rb +37 -38
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4b11c9fc54e518590ffa6936dab7cc05bf8e11ab318b42f385958975f103cc2
4
- data.tar.gz: 6a774411a6c983e01d1310f575970aad67a71bc6dc141d2c569d4233c709cf71
3
+ metadata.gz: 4f271721147d6d048ea4dc00e130850f2354589013fe401fb9f453cae2d5b49d
4
+ data.tar.gz: e7573863417eff88f63d7452441952efaa0a5c3f3820b7067f50885338b6f43a
5
5
  SHA512:
6
- metadata.gz: d9c406296710023ea0cc9916d9a4139d06a2b7f0d182098f7f41bf159810a8cd3e861cb555dbe11ebb5959d038f4697fc25b6ad56e9508261bd231f11eeb7b1a
7
- data.tar.gz: 50c045fed276f553f67c66e13943e61aaf3e451665488d569f41374f95c7d781123162651b4b695d39a2a22c8cf1bd4d237c11e23ffcff2f8a0597f14b95f485
6
+ metadata.gz: 654c8a2a7f0e2c0f47a44f2af2c3637441567c5b65c33bea00f4708e075ac3cf520421a2addf917653cd66dc79071e54e95f8d48871a93067107f313b09f4f70
7
+ data.tar.gz: 3d302a105c56395255b2bf43e3008aad0f2b7c7457d9a36fd9e2db1f5798355f07deb4b7239ea43f6018c3ffe97c40523ff86ba23637a92eff69ed4793601b1b
@@ -13,6 +13,27 @@ class RuleEngineClient
13
13
  log("rule engine '#{server}' client is initialized")
14
14
  end
15
15
 
16
+ def evaluate(engine, params, mode = 'production')
17
+ url = URI.parse("#{@server}/run?e=#{engine}&m=#{mode}")
18
+ @result = create_request(url, 'POST', params)
19
+ respone = response_builder
20
+ log("respone #{respone}")
21
+ respone
22
+ end
23
+
24
+ def engine_exists(engine)
25
+ log("checking if engine (#{engine}) exists")
26
+ url = URI.parse("#{@server}/engine/export?e=#{engine}")
27
+ @result = create_request(url, 'GET')
28
+ response = response_builder
29
+ response['body'] = {
30
+ 'exists' => !response['body'].empty?
31
+ }
32
+ response
33
+ end
34
+
35
+ private
36
+
16
37
  def log(message)
17
38
  @logger.debug("rule engine: #{message}") if @verbose
18
39
  end
@@ -33,7 +54,7 @@ class RuleEngineClient
33
54
 
34
55
  def response_builder
35
56
  if @time_out
36
- errors = ['HTTP Gatway timeout!']
57
+ errors = ['HTTP Gateway timeout!']
37
58
  body = {}
38
59
  code = 504
39
60
  elsif @result.code == '502'
@@ -53,47 +74,25 @@ class RuleEngineClient
53
74
  response_hash(code, body, errors)
54
75
  end
55
76
 
56
- def evaluate(engine, params, mode = 'production')
57
- url = URI.parse("#{@server}/run?e=#{engine}&m=#{mode}")
58
- log("Will send post request: #{url}")
59
- begin
60
- Timeout.timeout(@request_timeout_in_s) do
61
- http = Net::HTTP.new(url.host, url.port)
62
- http.use_ssl = true if url.instance_of? URI::HTTPS
77
+ def create_request(url, request_type, params = {})
78
+ Timeout.timeout(@request_timeout_in_s) do
79
+ http = Net::HTTP.new(url.host, url.port)
80
+ http.use_ssl = true if url.instance_of? URI::HTTPS
81
+ if request_type == 'GET'
82
+ log("Will send get request: #{url}")
83
+ request = Net::HTTP::Get.new(url.request_uri)
84
+ else
85
+ log("Will send post request: #{url}")
63
86
  request = Net::HTTP::Post.new(url.request_uri)
64
- request['Content-Type'] = 'application/json'
65
87
  request.body = params.to_json
66
88
  log("request body created #{request.body} ")
67
- @result = http.request(request)
68
- respone = response_builder
69
- log("respone #{respone}")
70
- respone
71
- end
72
- rescue Timeout::Error
73
- log('HTTP Gatway timeout!')
74
- @time_out = true
75
- response_builder
76
- end
77
- end
78
-
79
- def engine_exists?(engine)
80
- log("checking if engine (#{engine}) exists")
81
- url = URI.parse("#{@server}/engine/export?e=#{engine}")
82
- begin
83
- Timeout.timeout(@request_timeout_in_s) do
84
- http = Net::HTTP.new(url.host, url.port)
85
- http.use_ssl = true if url.instance_of? URI::HTTPS
86
- request = Net::HTTP::Get.new(url.request_uri)
87
- request['Content-Type'] = 'application/json'
88
- response = http.request(request)
89
- engine_exists = response.code == '200'
90
- log_message = engine_exists ? "engine #{engine} exists" : "engine #{engine} not found"
91
- log(log_message)
92
- engine_exists
93
89
  end
94
- rescue Timeout::Error
95
- log('HTTP Gatway timeout!')
96
- false
90
+ request['Content-Type'] = 'application/json'
91
+ request['Accept'] = 'application/json'
92
+ http.request(request)
97
93
  end
94
+ rescue Timeout::Error
95
+ log('HTTP Gateway timeout!')
96
+ @time_out = true
98
97
  end
99
98
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rule_engine_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Areej Nour
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-10 00:00:00.000000000 Z
11
+ date: 2022-08-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: integration with rule server
14
14
  email: