trophonius 2.1 → 2.1.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 386e8ae48aba1dd8e6898dcbc16dde02e4acd506658676a146ddc646d96d2929
4
- data.tar.gz: 59c8f91b771e3175347f9fa6fc87b522878e3c2cb9f1cb468f3a78b7cf85c616
3
+ metadata.gz: 6ecc1055be56103548bd16bca808ff5a939e0ee7bbb2650d92f14cfb8e4d18da
4
+ data.tar.gz: 5b7319bc6b276601a9208db83771f7e2b94c1a981d43f752f5af74370ddad44d
5
5
  SHA512:
6
- metadata.gz: beca517abee0fd0db44a9e1cc96f16a5014e061101b8818aaa7f368ac597eecff3aaf4968f3ddd063732a2df36f7c8fa841d322b46599062b0a45b57887ae0d3
7
- data.tar.gz: 71b436a45681c37c4bd6b8f3ce34d35e0cb11badb4356a32b2f1be8ebf7eb29af21c88e51a41d5166f2762bee0af4773a628d28f0cd1f7371ab7c45bc4873d24
6
+ metadata.gz: 2922556fcf044ffd33a83f7b2645d866e22f4be011813c833eecbb087e9563e9c9f15c72954645544ffc6bad2982b1f66057de0696f35febd3be9878f6bdf006
7
+ data.tar.gz: bf26bdb6b2ce439f4d302fdd3075c9fc07d73acbdfe0dd0ec5981e2ebad5c2ef89735a69d419e812b77bc965f72f730c8fef1335fae0f04d8355d95597ef93d8
data/lib/config.rb CHANGED
@@ -27,6 +27,7 @@ module Trophonius
27
27
  config_accessor(:belongs_to_relations) { {} }
28
28
  config_accessor(:local_network) { false }
29
29
  config_accessor(:redis_connection) { false }
30
+ config_accessor(:redis_no_verify) { false }
30
31
  config_accessor(:pool_size) { 5 }
31
32
  config_accessor(:debug) { false }
32
33
  end
@@ -2,9 +2,11 @@ require 'time'
2
2
  require 'base64'
3
3
  require 'securerandom'
4
4
  require 'connectors/redis_manager'
5
+ require 'debug_printer'
5
6
 
6
7
  module Trophonius
7
8
  class Connection
9
+ include DebugPrinter
8
10
  attr_reader :id
9
11
 
10
12
  def initialize
@@ -24,6 +26,49 @@ module Trophonius
24
26
  end
25
27
  end
26
28
 
29
+ ##
30
+ # Disconnects from the FileMaker server
31
+ #
32
+ def disconnect
33
+ uri = URI::RFC2396_Parser.new
34
+ url =
35
+ URI(
36
+ uri.escape(
37
+ "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
38
+ Trophonius.config.database
39
+ }/sessions/#{Trophonius.config.redis_connection ? Trophonius::RedisManager.get_key(key: 'token') : @token}"
40
+ )
41
+ )
42
+ ssl_verifyhost = Trophonius.config.local_network ? 0 : 2
43
+ ssl_verifypeer = !Trophonius.config.local_network
44
+
45
+ request =
46
+ Typhoeus::Request.new(
47
+ url,
48
+ method: :delete,
49
+ params: {},
50
+ ssl_verifyhost: ssl_verifyhost,
51
+ ssl_verifypeer: ssl_verifypeer,
52
+ headers: { 'Content-Type' => 'application/json' }
53
+ )
54
+ temp = request.run
55
+
56
+ begin
57
+ parsed = JSON.parse(temp.response_body)
58
+
59
+ DebugPrinter.print_debug('RECEIVED DISCONNECT', parsed)
60
+ rescue StandardError => e
61
+ puts e
62
+ puts e.backtrace
63
+ Error.throw_error('1631')
64
+ end
65
+ Error.throw_error(parsed['messages'][0]['code']) if parsed['messages'][0]['code'] != '0'
66
+ Trophonius::RedisManager.disconnect! if Trophonius.config.redis_connection
67
+ @token = nil
68
+ @last_connection = nil
69
+ true
70
+ end
71
+
27
72
  private
28
73
 
29
74
  ##
@@ -113,47 +158,6 @@ module Trophonius
113
158
  parsed['response']['token']
114
159
  end
115
160
 
116
- ##
117
- # Disconnects from the FileMaker server
118
- #
119
- def disconnect
120
- uri = URI::RFC2396_Parser.new
121
- url =
122
- URI(
123
- uri.escape(
124
- "http#{Trophonius.config.ssl == true ? 's' : ''}://#{Trophonius.config.host}/fmi/data/v1/databases/#{
125
- Trophonius.config.database
126
- }/sessions/#{Trophonius.config.redis_connection ? Trophonius::RedisManager.get_key(key: 'token') : @token}"
127
- )
128
- )
129
- ssl_verifyhost = Trophonius.config.local_network ? 0 : 2
130
- ssl_verifypeer = !Trophonius.config.local_network
131
-
132
- request =
133
- Typhoeus::Request.new(
134
- url,
135
- method: :delete,
136
- params: {},
137
- ssl_verifyhost: ssl_verifyhost,
138
- ssl_verifypeer: ssl_verifypeer,
139
- headers: { 'Content-Type' => 'application/json' }
140
- )
141
- temp = request.run
142
-
143
- begin
144
- parsed = JSON.parse(temp.response_body)
145
- rescue StandardError => e
146
- puts e
147
- puts e.backtrace
148
- Error.throw_error('1631')
149
- end
150
- Error.throw_error(parsed['messages'][0]['code']) if parsed['messages'][0]['code'] != '0'
151
- Trophonius::RedisManager.disconnect! if Trophonius.config.redis_connection
152
- @token = nil
153
- @last_connection = nil
154
- true
155
- end
156
-
157
161
  ##
158
162
  # Returns the receive time of the last received token
159
163
  # @return [Time] Returns the receive time of the last received token
@@ -1,10 +1,14 @@
1
+ require 'debug_printer'
1
2
  module Trophonius
2
3
  class ConnectionManager
4
+ include DebugPrinter
3
5
  def initialize
4
6
  @connections = {}
5
7
  Trophonius.config.pool_size.times do
6
8
  connection = Connection.new
7
9
  @connections[connection.id] = { connection: connection, queue: [] }
10
+
11
+ DebugPrinter.print_debug('CONNECTION CREATED', @connections[connection.id].inspect)
8
12
  end
9
13
  end
10
14
 
@@ -22,6 +26,10 @@ module Trophonius
22
26
  nil
23
27
  end
24
28
 
29
+ def disconnect_all
30
+ @connections.each { |_connection_id, connection| connection[:connection].disconnect }
31
+ end
32
+
25
33
  private
26
34
 
27
35
  def auth_header_bearer(id)
@@ -2,14 +2,15 @@ module Trophonius
2
2
  # the RedisManager module is used to create a (single) connection to a redis store.
3
3
  module Trophonius::RedisManager
4
4
  def self.connect
5
- if Trophonius.config.redis_connection
6
- if ENV['REDIS_URL'] && ENV['REDIS_URL'] != ''
7
- @redis ||= Redis.new(url: ENV['REDIS_URL'])
8
- else
9
- @redis ||= Redis.new
10
- end
11
- end
12
- return nil
5
+ return unless Trophonius.config.redis_connection
6
+
7
+ redis_url = ENV.fetch('REDIS_URL')
8
+ options = {}
9
+ options.merge!(url: redis_url) if redis_url && redis_url != ''
10
+ options.merge!(ssl_params: { verify_mode: OpenSSL::SSL::VERIFY_NONE }) if Trophonius.config.redis_no_verify
11
+ @redis ||= Redis.new(options)
12
+
13
+ nil
13
14
  end
14
15
 
15
16
  ##
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trophonius
3
3
  version: !ruby/object:Gem::Version
4
- version: '2.1'
4
+ version: 2.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kempen Automatisering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-21 00:00:00.000000000 Z
11
+ date: 2024-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  - !ruby/object:Gem::Version
99
99
  version: '0'
100
100
  requirements: []
101
- rubygems_version: 3.4.7
101
+ rubygems_version: 3.5.5
102
102
  signing_key:
103
103
  specification_version: 4
104
104
  summary: Link between Ruby (on Rails) and FileMaker.