rule_engine_client 0.1.8 → 0.1.9

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 +48 -41
  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: bbb8d1d41bc3a3349d3833e43067ea0a88d6a86987099df2f2cb44c035b805a8
4
+ data.tar.gz: 4e63551f1046d994e701bc252915ba67b607bc25e0b1ccc0272e7c5baa47e433
5
5
  SHA512:
6
- metadata.gz: d9c406296710023ea0cc9916d9a4139d06a2b7f0d182098f7f41bf159810a8cd3e861cb555dbe11ebb5959d038f4697fc25b6ad56e9508261bd231f11eeb7b1a
7
- data.tar.gz: 50c045fed276f553f67c66e13943e61aaf3e451665488d569f41374f95c7d781123162651b4b695d39a2a22c8cf1bd4d237c11e23ffcff2f8a0597f14b95f485
6
+ metadata.gz: 745d7961b437e8778116261b8d44f5fb464e16adc795d210ce5b96237619c661abf309c2710b4229b33f87491192d740aab74145ac81e6156b8c0ff8df783bb0
7
+ data.tar.gz: 24d66a7ba9655df2a4f37d282e0695ab58f478096b555f7a26352a72a0fd0f065563bedd56d893b7ed9e35e4254143794ade498a1bbfa7bfc61f127a50c718fc
@@ -13,6 +13,43 @@ 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
+ log("Will send post request: #{url}")
19
+ begin
20
+ Timeout.timeout(@request_timeout_in_s) do
21
+ @result = create_request(url, 'post', params)
22
+ respone = response_builder
23
+ log("respone #{respone}")
24
+ respone
25
+ end
26
+ rescue Timeout::Error
27
+ log('HTTP Gatway timeout!')
28
+ @time_out = true
29
+ response_builder
30
+ end
31
+ end
32
+
33
+ def engine_exists?(engine)
34
+ log("checking if engine (#{engine}) exists")
35
+ url = URI.parse("#{@server}/engine/export?e=#{engine}")
36
+ log("Will send get request: #{url}")
37
+ begin
38
+ Timeout.timeout(@request_timeout_in_s) do
39
+ response = create_request(url, 'get')
40
+ engine_exists = response.code == '200'
41
+ log_message = engine_exists ? "engine #{engine} exists" : "engine #{engine} not found"
42
+ log(log_message)
43
+ engine_exists
44
+ end
45
+ rescue Timeout::Error
46
+ log('HTTP Gateway timeout!')
47
+ false
48
+ end
49
+ end
50
+
51
+ private
52
+
16
53
  def log(message)
17
54
  @logger.debug("rule engine: #{message}") if @verbose
18
55
  end
@@ -53,47 +90,17 @@ class RuleEngineClient
53
90
  response_hash(code, body, errors)
54
91
  end
55
92
 
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
63
- request = Net::HTTP::Post.new(url.request_uri)
64
- request['Content-Type'] = 'application/json'
65
- request.body = params.to_json
66
- 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
- end
94
- rescue Timeout::Error
95
- log('HTTP Gatway timeout!')
96
- false
93
+ def create_request(url, request_type, params = {})
94
+ http = Net::HTTP.new(url.host, url.port)
95
+ http.use_ssl = true if url.instance_of? URI::HTTPS
96
+ if request_type == 'GET'
97
+ request = Net::HTTP::Get.new(url.request_uri)
98
+ else
99
+ request = Net::HTTP::Post.new(url.request_uri)
100
+ request.body = params.to_json
101
+ log("request body created #{request.body} ")
97
102
  end
103
+ request['Content-Type'] = 'application/json'
104
+ http.request(request)
98
105
  end
99
106
  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.9
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-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: integration with rule server
14
14
  email: