selfsdk 0.0.171 → 0.0.172

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6dc6a29ff435f9b448759891a658f8ad4d93f2abf1981813ea00afbb448839d2
4
- data.tar.gz: 9d6e5bb62bac11b939d5021fe5e52174e33930b667d4a3fc046070b58e62bc25
3
+ metadata.gz: 6e68f10b976ff9d53d2a5983300d48d1893ea831b18128198ee022e7191f9184
4
+ data.tar.gz: bf4d068f07d59e804700b278d1f12062301fdb4922960f71c7f6fbefd30a81fc
5
5
  SHA512:
6
- metadata.gz: 82566b7f8beed7b293fbd3ec858969a526e570a77c093be3bfe3c7bc0535e25b9327887d673a762362c23fadd8044032903f03b4df814a8868eb4ffe029a3253
7
- data.tar.gz: '096f7064f54238f411b8ec568ba83a5b1d9dd691780daa401ceb48a6c08c2c0a6346431d723d268ad0042b36b500f5c6b50fef33675e1d840473e866653ac81b'
6
+ metadata.gz: 4b9d95c1241a0852ed1b8a11965fbab426f380929ffa27dbce41b2a761b6aacaa971fdc608aaeefc90d605646f03fa798bde4491def9b98dbbb01a2c1070289f
7
+ data.tar.gz: 93615191987f3bbce66d7f544afefc66869a740864a910666cb4b4374f580cd75dacd3a9b4a624b93c7569008ff73b1ffb598fd8fd775793b2a76ab58e268d59
@@ -43,7 +43,7 @@ module SelfSDK
43
43
  def proto(to_device)
44
44
  Msgproto::Message.new(type: Msgproto::MsgType::MSG,
45
45
  sender: "#{@jwt.id}:#{@messaging.device_id}",
46
- id: @id,
46
+ id: SecureRandom.uuid,
47
47
  recipient: "#{@to}:#{to_device}",
48
48
  ciphertext: encrypt_message(@jwt.prepare(body), @to, to_device))
49
49
  end
data/lib/messages/base.rb CHANGED
@@ -21,8 +21,13 @@ module SelfSDK
21
21
  msgs = []
22
22
  devices.each do |d|
23
23
  msgs << proto(d)
24
- SelfSDK.logger.info "synchronously messaging to #{@to}:#{d}"
25
24
  end
25
+ current_devices.each do |d|
26
+ if d != @messaging.device_id
27
+ msgs << proto(d)
28
+ end
29
+ end
30
+ SelfSDK.logger.info "synchronously messaging to #{@to}"
26
31
  res = @messaging.send_and_wait_for_response(msgs, self)
27
32
  res
28
33
  end
@@ -84,6 +89,10 @@ module SelfSDK
84
89
  @client.devices(@intermediary)
85
90
  end
86
91
 
92
+ def current_devices
93
+ @client.devices(@jwt.id)
94
+ end
95
+
87
96
  def check_credits!
88
97
  app = @client.app(@jwt.id)
89
98
  raise "Your credits have expired, please log in to the developer portal and top up your account." if app[:paid_actions] == false
@@ -105,7 +105,7 @@ module SelfSDK
105
105
 
106
106
  Msgproto::Message.new(
107
107
  type: Msgproto::MsgType::MSG,
108
- id: @id,
108
+ id: SecureRandom.uuid,
109
109
  sender: "#{@jwt.id}:#{@messaging.device_id}",
110
110
  recipient: recipient,
111
111
  ciphertext: ciphertext )
data/lib/messaging.rb CHANGED
@@ -101,15 +101,27 @@ module SelfSDK
101
101
  # @param type [string] message type
102
102
  # @param request [hash] original message requesing information
103
103
  def send_custom(recipient, request_body)
104
- # TODO (adriacidre) this is sending the message to the first device only
105
- @to_device = @client.devices(recipient).first
106
- send_message msg = Msgproto::Message.new(
104
+ @client.devices(recipient).each do |to_device|
105
+ send_message Msgproto::Message.new(
107
106
  type: Msgproto::MsgType::MSG,
108
107
  id: SecureRandom.uuid,
109
108
  sender: "#{@jwt.id}:#{@device_id}",
110
- recipient: "#{recipient}:#{@to_device}",
109
+ recipient: "#{recipient}:#{to_device}",
111
110
  ciphertext: @jwt.prepare(request_body),
112
111
  )
112
+ end
113
+
114
+ @client.devices(@jwt.id).each do |to_device|
115
+ if to-device != @device_id
116
+ send_message Msgproto::Message.new(
117
+ type: Msgproto::MsgType::MSG,
118
+ id: SecureRandom.uuid,
119
+ sender: "#{@jwt.id}:#{@device_id}",
120
+ recipient: "#{recipient}:#{to_device}",
121
+ ciphertext: @jwt.prepare(request_body),
122
+ )
123
+ end
124
+ end
113
125
  end
114
126
 
115
127
  # Allows incomming messages from the given identity
@@ -281,10 +293,6 @@ module SelfSDK
281
293
  loop { sleep 10; clean_timeouts }
282
294
  end
283
295
 
284
- Thread.new do
285
- loop { sleep 30; ping }
286
- end
287
-
288
296
  @mon.synchronize do
289
297
  @acks[auth_id][:waiting_cond].wait_while { @acks[auth_id][:waiting] }
290
298
  @acks.delete(auth_id)
@@ -351,11 +359,6 @@ module SelfSDK
351
359
  end
352
360
  end
353
361
 
354
- # Pings the websocket server to keep the connection alive.
355
- def ping
356
- # SelfSDK.logger.info "ping"
357
- @ws&.ping
358
- end
359
362
 
360
363
  # Process an event when it arrives through the websocket connection.
361
364
  def on_message(event)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selfsdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.171
4
+ version: 0.0.172
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aldgate Ventures