selfsdk 0.0.171 → 0.0.172

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: 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