interapp 6.0.0 → 6.1.0

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: 9eeabb5748667c0cb614f7d41aff22cbc3bffa34f0d21008f9f697b9c74b9bf7
4
- data.tar.gz: 8bb5636d99624fab81291e54d33d1ec833bec95176b2a30e5903cfae79d5eb45
3
+ metadata.gz: 8a89ce38942b6077d2e30c9c6dc7de4b5ac48f615f14d0ec208442f865416429
4
+ data.tar.gz: 659b765754e8d24d8e7337a2990cc173ef0fcdc360de98192cc7a09645da384b
5
5
  SHA512:
6
- metadata.gz: ca0455b56b3d26db61328084ec371de9e5e39db7c4900568401cbc46bee849b0bc35241f0628ad95d21a750c1e16fe477094b0aea4b85e98265d63caed1cb8ff
7
- data.tar.gz: 93bef7f5ca4b85b89d13c357daee37b3e7d1f8c424f4abab7591707f2a52056926b44b966c29045dd4dc6c26f974a444d819162a55c2aebc47c48480d97466f7
6
+ metadata.gz: 9364bb56e351ff06d277113b3e9cdb4588db1b0b51fb3e344fa561aa2f296a3c5324562615e567ee32cc38842b5ffb9b9f15ec31b9221e3e7f4a75a7ff405b1a
7
+ data.tar.gz: f1e2ebac3e15fbe78ed8a95179b3dd4af1bc5ed115177fb646ccfe586d80c937b8fd4b2d384d6f8be2ff192a8333b81fffdb16c5440d8965ddfa1e157c5d7c3f
@@ -1,3 +1,6 @@
1
+ require 'net/http'
2
+ require 'uri'
3
+
1
4
  module Interapp
2
5
  class SendMessageService
3
6
  attr :message, :peer, :payload
@@ -10,12 +13,17 @@ module Interapp
10
13
  end
11
14
 
12
15
  def perform
13
- response = RestClient.post(peer.endpoint, message.payload, {
14
- content_type: 'application/json',
15
- "X-Interapp-Identifier" => Interapp.configuration.identifier,
16
- "X-Interapp-Signature" => message.signature
17
- })
18
- JSON.parse(response) if response
16
+ response = Net::HTTP.post(
17
+ URI(peer.endpoint),
18
+ message.payload,
19
+ {
20
+ "X-Interapp-Identifier" => Interapp.configuration.identifier,
21
+ "X-Interapp-Signature" => message.signature,
22
+ "Content-Type" => "application/json",
23
+ "Accept" => "application/json"
24
+ }
25
+ )
26
+ JSON.parse(response.body) if response
19
27
  end
20
28
 
21
29
  private
data/lib/interapp.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require "ecdsa"
2
- require "rest-client"
3
2
  require "interapp/engine"
4
3
  require "interapp/configuration"
5
4
  require "interapp/cryptography"
@@ -1,3 +1,3 @@
1
1
  module Interapp
2
- VERSION = '6.0.0'.freeze
2
+ VERSION = '6.1.0'.freeze
3
3
  end
@@ -18,17 +18,21 @@ describe Interapp::SendMessageService do
18
18
  end
19
19
 
20
20
  describe "#perform" do
21
- it "sends the POST request" do
22
- expect(RestClient).to receive(:post).with(subject.peer.endpoint, subject.message.payload, {
23
- content_type: 'application/json',
24
- "X-Interapp-Identifier" => Interapp.configuration.identifier,
25
- "X-Interapp-Signature" => subject.message.signature
26
- })
27
- subject.perform
28
- end
29
-
30
- it "returns parsed json response" do
31
- allow(RestClient).to receive(:post).and_return("{\"dummy\":\"response\"}")
21
+ it "sends the POST request and return parsed json response" do
22
+ stub_request(:post, "https://dummy.example.com/interapp")
23
+ .with(
24
+ body: "{\"test\":[\"message\",\"payload\"]}",
25
+ headers: {
26
+ 'Content-Type' => 'application/json',
27
+ 'Accept' => 'application/json',
28
+ 'X-Interapp-Identifier' => Interapp.configuration.identifier,
29
+ 'X-Interapp-Signature' => subject.message.signature
30
+ }
31
+ ).to_return(
32
+ status: 200,
33
+ body: "{\"dummy\":\"response\"}",
34
+ headers: {}
35
+ )
32
36
  expect(subject.perform).to eq({"dummy" => "response"})
33
37
  end
34
38
  end
data/spec/spec_helper.rb CHANGED
@@ -2,6 +2,9 @@ ENV['RAILS_ENV'] ||= 'test'
2
2
 
3
3
  require File.expand_path('dummy/config/environment.rb', __dir__)
4
4
  require 'rspec/rails'
5
+ require 'webmock/rspec'
6
+
7
+ WebMock.disable_net_connect!
5
8
 
6
9
  Rails.backtrace_cleaner.remove_silencers!
7
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.0.0
4
+ version: 6.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Zhou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-05 00:00:00.000000000 Z
11
+ date: 2021-05-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ecdsa
@@ -45,27 +45,21 @@ dependencies:
45
45
  - !ruby/object:Gem::Version
46
46
  version: '7.0'
47
47
  - !ruby/object:Gem::Dependency
48
- name: rest-client
48
+ name: rspec-rails
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - ">"
52
- - !ruby/object:Gem::Version
53
- version: 1.7.0
54
- - - "<"
51
+ - - ">="
55
52
  - !ruby/object:Gem::Version
56
- version: '3.0'
57
- type: :runtime
53
+ version: '0'
54
+ type: :development
58
55
  prerelease: false
59
56
  version_requirements: !ruby/object:Gem::Requirement
60
57
  requirements:
61
- - - ">"
62
- - !ruby/object:Gem::Version
63
- version: 1.7.0
64
- - - "<"
58
+ - - ">="
65
59
  - !ruby/object:Gem::Version
66
- version: '3.0'
60
+ version: '0'
67
61
  - !ruby/object:Gem::Dependency
68
- name: rspec-rails
62
+ name: sqlite3
69
63
  requirement: !ruby/object:Gem::Requirement
70
64
  requirements:
71
65
  - - ">="
@@ -79,7 +73,7 @@ dependencies:
79
73
  - !ruby/object:Gem::Version
80
74
  version: '0'
81
75
  - !ruby/object:Gem::Dependency
82
- name: sqlite3
76
+ name: webmock
83
77
  requirement: !ruby/object:Gem::Requirement
84
78
  requirements:
85
79
  - - ">="
@@ -145,7 +139,6 @@ files:
145
139
  - spec/dummy/config/routes.rb
146
140
  - spec/dummy/config/secrets.yml
147
141
  - spec/dummy/db/test.sqlite3
148
- - spec/dummy/log/test.log
149
142
  - spec/dummy/public/404.html
150
143
  - spec/dummy/public/422.html
151
144
  - spec/dummy/public/500.html
@@ -174,49 +167,47 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
167
  - !ruby/object:Gem::Version
175
168
  version: '0'
176
169
  requirements: []
177
- rubyforge_project:
178
- rubygems_version: 2.7.6
170
+ rubygems_version: 3.1.4
179
171
  signing_key:
180
172
  specification_version: 4
181
173
  summary: Interapp handles simple and secure inter-app messaging.
182
174
  test_files:
183
175
  - spec/services/receive_message_service_spec.rb
184
176
  - spec/services/send_message_service_spec.rb
177
+ - spec/models/message_spec.rb
185
178
  - spec/spec_helper.rb
186
179
  - spec/requests/interapp_spec.rb
187
- - spec/models/message_spec.rb
188
- - spec/dummy/README.rdoc
189
- - spec/dummy/app/assets/javascripts/application.js
190
- - spec/dummy/app/assets/stylesheets/application.css
191
- - spec/dummy/app/helpers/application_helper.rb
192
- - spec/dummy/app/views/layouts/application.html.erb
193
- - spec/dummy/app/controllers/application_controller.rb
194
- - spec/dummy/config/initializers/wrap_parameters.rb
195
- - spec/dummy/config/initializers/session_store.rb
196
- - spec/dummy/config/initializers/mime_types.rb
197
- - spec/dummy/config/initializers/filter_parameter_logging.rb
198
- - spec/dummy/config/initializers/inflections.rb
199
- - spec/dummy/config/initializers/backtrace_silencers.rb
200
- - spec/dummy/config/initializers/interapp.rb
201
- - spec/dummy/config/initializers/cookies_serializer.rb
202
- - spec/dummy/config/locales/en.yml
180
+ - spec/dummy/config/secrets.yml
181
+ - spec/dummy/config/boot.rb
203
182
  - spec/dummy/config/environments/test.rb
204
183
  - spec/dummy/config/environments/development.rb
205
184
  - spec/dummy/config/environments/production.rb
206
- - spec/dummy/config/environment.rb
207
- - spec/dummy/config/boot.rb
208
185
  - spec/dummy/config/routes.rb
209
- - spec/dummy/config/secrets.yml
210
186
  - spec/dummy/config/database.yml
187
+ - spec/dummy/config/locales/en.yml
188
+ - spec/dummy/config/environment.rb
189
+ - spec/dummy/config/initializers/cookies_serializer.rb
190
+ - spec/dummy/config/initializers/interapp.rb
191
+ - spec/dummy/config/initializers/backtrace_silencers.rb
192
+ - spec/dummy/config/initializers/session_store.rb
193
+ - spec/dummy/config/initializers/wrap_parameters.rb
194
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
195
+ - spec/dummy/config/initializers/mime_types.rb
196
+ - spec/dummy/config/initializers/inflections.rb
211
197
  - spec/dummy/config/application.rb
212
- - spec/dummy/bin/rake
213
- - spec/dummy/bin/bundle
214
- - spec/dummy/bin/rails
215
- - spec/dummy/log/test.log
216
198
  - spec/dummy/db/test.sqlite3
199
+ - spec/dummy/config.ru
200
+ - spec/dummy/app/views/layouts/application.html.erb
201
+ - spec/dummy/app/helpers/application_helper.rb
202
+ - spec/dummy/app/assets/stylesheets/application.css
203
+ - spec/dummy/app/assets/javascripts/application.js
204
+ - spec/dummy/app/controllers/application_controller.rb
217
205
  - spec/dummy/public/favicon.ico
218
- - spec/dummy/public/422.html
219
- - spec/dummy/public/500.html
220
206
  - spec/dummy/public/404.html
221
- - spec/dummy/config.ru
207
+ - spec/dummy/public/500.html
208
+ - spec/dummy/public/422.html
222
209
  - spec/dummy/Rakefile
210
+ - spec/dummy/README.rdoc
211
+ - spec/dummy/bin/bundle
212
+ - spec/dummy/bin/rails
213
+ - spec/dummy/bin/rake
@@ -1,287 +0,0 @@
1
-  (1.8ms) SELECT sqlite_version(*)
2
-  (0.2ms) begin transaction
3
-  (0.1ms) rollback transaction
4
-  (0.1ms) begin transaction
5
-  (0.1ms) rollback transaction
6
-  (0.0ms) begin transaction
7
-  (0.1ms) rollback transaction
8
-  (0.0ms) begin transaction
9
-  (0.0ms) rollback transaction
10
-  (0.0ms) begin transaction
11
-  (0.0ms) rollback transaction
12
-  (0.1ms) begin transaction
13
-  (0.0ms) rollback transaction
14
-  (0.1ms) begin transaction
15
-  (0.1ms) rollback transaction
16
-  (0.0ms) begin transaction
17
-  (0.1ms) rollback transaction
18
-  (0.1ms) begin transaction
19
-  (0.1ms) rollback transaction
20
-  (0.1ms) begin transaction
21
-  (0.1ms) rollback transaction
22
-  (0.0ms) begin transaction
23
-  (0.0ms) rollback transaction
24
-  (0.0ms) begin transaction
25
-  (0.1ms) rollback transaction
26
-  (0.1ms) begin transaction
27
-  (0.0ms) rollback transaction
28
-  (0.1ms) begin transaction
29
-  (0.1ms) rollback transaction
30
-  (0.0ms) begin transaction
31
-  (0.0ms) rollback transaction
32
-  (0.1ms) begin transaction
33
-  (0.0ms) rollback transaction
34
-  (0.0ms) begin transaction
35
-  (0.2ms) rollback transaction
36
-  (0.0ms) begin transaction
37
-  (0.1ms) rollback transaction
38
-  (0.8ms) SELECT sqlite_version(*)
39
-  (0.0ms) begin transaction
40
-  (0.0ms) rollback transaction
41
-  (0.1ms) begin transaction
42
-  (0.1ms) rollback transaction
43
-  (0.0ms) begin transaction
44
-  (0.0ms) rollback transaction
45
-  (0.0ms) begin transaction
46
-  (0.0ms) rollback transaction
47
-  (0.0ms) begin transaction
48
-  (0.1ms) rollback transaction
49
-  (0.0ms) begin transaction
50
-  (0.1ms) rollback transaction
51
-  (0.0ms) begin transaction
52
-  (0.1ms) rollback transaction
53
-  (0.0ms) begin transaction
54
-  (0.1ms) rollback transaction
55
-  (0.1ms) begin transaction
56
-  (0.0ms) rollback transaction
57
-  (0.0ms) begin transaction
58
-  (0.1ms) rollback transaction
59
-  (0.0ms) begin transaction
60
-  (0.0ms) rollback transaction
61
-  (0.0ms) begin transaction
62
-  (0.0ms) rollback transaction
63
-  (0.0ms) begin transaction
64
-  (0.0ms) rollback transaction
65
-  (0.0ms) begin transaction
66
-  (0.0ms) rollback transaction
67
-  (0.0ms) begin transaction
68
-  (0.1ms) rollback transaction
69
-  (0.0ms) begin transaction
70
-  (0.1ms) rollback transaction
71
-  (0.1ms) begin transaction
72
-  (0.1ms) rollback transaction
73
-  (0.1ms) begin transaction
74
-  (0.1ms) rollback transaction
75
-  (1.5ms) SELECT sqlite_version(*)
76
-  (0.1ms) begin transaction
77
-  (0.1ms) rollback transaction
78
-  (0.0ms) begin transaction
79
-  (0.1ms) rollback transaction
80
-  (0.1ms) begin transaction
81
-  (0.1ms) rollback transaction
82
-  (0.0ms) begin transaction
83
-  (0.0ms) rollback transaction
84
-  (0.1ms) begin transaction
85
-  (0.1ms) rollback transaction
86
-  (0.1ms) begin transaction
87
-  (0.0ms) rollback transaction
88
-  (0.1ms) begin transaction
89
-  (0.0ms) rollback transaction
90
-  (0.1ms) begin transaction
91
-  (0.1ms) rollback transaction
92
-  (0.0ms) begin transaction
93
-  (0.1ms) rollback transaction
94
-  (0.1ms) begin transaction
95
-  (0.0ms) rollback transaction
96
-  (0.0ms) begin transaction
97
-  (0.0ms) rollback transaction
98
-  (0.0ms) begin transaction
99
-  (0.0ms) rollback transaction
100
-  (0.0ms) begin transaction
101
-  (0.0ms) rollback transaction
102
-  (0.0ms) begin transaction
103
-  (0.1ms) rollback transaction
104
-  (0.0ms) begin transaction
105
-  (0.1ms) rollback transaction
106
-  (0.0ms) begin transaction
107
-  (0.1ms) rollback transaction
108
-  (0.0ms) begin transaction
109
-  (0.0ms) rollback transaction
110
-  (0.0ms) begin transaction
111
-  (0.1ms) rollback transaction
112
-  (0.8ms) SELECT sqlite_version(*)
113
-  (0.0ms) begin transaction
114
-  (0.1ms) rollback transaction
115
-  (0.0ms) begin transaction
116
-  (0.1ms) rollback transaction
117
-  (0.0ms) begin transaction
118
-  (0.1ms) rollback transaction
119
-  (0.1ms) begin transaction
120
-  (0.1ms) rollback transaction
121
-  (0.1ms) begin transaction
122
-  (0.1ms) rollback transaction
123
-  (0.0ms) begin transaction
124
-  (0.0ms) rollback transaction
125
-  (0.1ms) begin transaction
126
-  (0.1ms) rollback transaction
127
-  (0.1ms) begin transaction
128
-  (0.0ms) rollback transaction
129
-  (0.0ms) begin transaction
130
-  (0.0ms) rollback transaction
131
-  (0.0ms) begin transaction
132
-  (0.1ms) rollback transaction
133
-  (0.0ms) begin transaction
134
-  (0.1ms) rollback transaction
135
-  (0.1ms) begin transaction
136
-  (0.0ms) rollback transaction
137
-  (0.0ms) begin transaction
138
-  (0.0ms) rollback transaction
139
-  (0.0ms) begin transaction
140
-  (0.0ms) rollback transaction
141
-  (0.0ms) begin transaction
142
-  (0.0ms) rollback transaction
143
-  (0.0ms) begin transaction
144
-  (0.0ms) rollback transaction
145
-  (0.1ms) begin transaction
146
-  (0.1ms) rollback transaction
147
-  (0.1ms) begin transaction
148
-  (0.0ms) rollback transaction
149
-  (0.7ms) SELECT sqlite_version(*)
150
-  (0.0ms) begin transaction
151
-  (0.1ms) rollback transaction
152
-  (0.1ms) begin transaction
153
-  (0.1ms) rollback transaction
154
-  (0.0ms) begin transaction
155
-  (0.1ms) rollback transaction
156
-  (0.0ms) begin transaction
157
-  (0.1ms) rollback transaction
158
-  (0.1ms) begin transaction
159
-  (0.1ms) rollback transaction
160
-  (0.0ms) begin transaction
161
-  (0.0ms) rollback transaction
162
-  (0.0ms) begin transaction
163
-  (0.0ms) rollback transaction
164
-  (0.0ms) begin transaction
165
-  (0.1ms) rollback transaction
166
-  (0.0ms) begin transaction
167
-  (0.0ms) rollback transaction
168
-  (0.0ms) begin transaction
169
-  (0.0ms) rollback transaction
170
-  (0.0ms) begin transaction
171
-  (0.0ms) rollback transaction
172
-  (0.0ms) begin transaction
173
- Started POST "/interapp" for 127.0.0.1 at 2019-09-05 16:36:13 +1000
174
- Processing by Interapp::MessagesController#create as HTML
175
- Parameters: {"test"=>["message", "payload"], "message"=>{"test"=>["message", "payload"]}}
176
- Completed 200 OK in 136ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 772877)
177
-  (0.0ms) rollback transaction
178
-  (0.1ms) begin transaction
179
-  (0.0ms) rollback transaction
180
-  (0.1ms) begin transaction
181
-  (0.0ms) rollback transaction
182
-  (0.0ms) begin transaction
183
-  (0.0ms) rollback transaction
184
-  (0.0ms) begin transaction
185
-  (0.1ms) rollback transaction
186
-  (0.0ms) begin transaction
187
-  (0.1ms) rollback transaction
188
-  (0.1ms) begin transaction
189
-  (0.1ms) rollback transaction
190
-  (1.3ms) SELECT sqlite_version(*)
191
-  (0.1ms) begin transaction
192
- Started POST "/interapp" for 127.0.0.1 at 2019-09-05 16:36:50 +1000
193
- Processing by Interapp::MessagesController#create as HTML
194
- Parameters: {"test"=>["message", "payload"], "message"=>{"test"=>["message", "payload"]}}
195
- Completed 200 OK in 192ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 774404)
196
-  (0.0ms) rollback transaction
197
-  (0.0ms) begin transaction
198
- Started POST "/interapp" for 127.0.0.1 at 2019-09-05 16:36:50 +1000
199
- Processing by Interapp::MessagesController#create as HTML
200
- Parameters: {"test"=>["message", "payload"], "message"=>{"test"=>["message", "payload"]}}
201
- Completed 403 Forbidden in 0ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 156)
202
-  (0.0ms) rollback transaction
203
-  (0.0ms) begin transaction
204
- Started POST "/interapp" for 127.0.0.1 at 2019-09-05 16:36:50 +1000
205
- Processing by Interapp::MessagesController#create as HTML
206
- Parameters: {"test"=>["message", "payload"], "message"=>{"test"=>["message", "payload"]}}
207
- Completed 403 Forbidden in 0ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 175)
208
-  (0.0ms) rollback transaction
209
-  (0.0ms) begin transaction
210
-  (0.1ms) rollback transaction
211
-  (0.0ms) begin transaction
212
-  (0.0ms) rollback transaction
213
-  (0.1ms) begin transaction
214
-  (0.1ms) rollback transaction
215
-  (0.0ms) begin transaction
216
-  (0.0ms) rollback transaction
217
-  (0.0ms) begin transaction
218
-  (0.0ms) rollback transaction
219
-  (0.0ms) begin transaction
220
-  (0.1ms) rollback transaction
221
-  (0.1ms) begin transaction
222
-  (0.1ms) rollback transaction
223
-  (0.1ms) begin transaction
224
-  (0.0ms) rollback transaction
225
-  (0.1ms) begin transaction
226
-  (0.1ms) rollback transaction
227
-  (0.0ms) begin transaction
228
-  (0.1ms) rollback transaction
229
-  (0.1ms) begin transaction
230
-  (0.1ms) rollback transaction
231
-  (0.1ms) begin transaction
232
-  (0.1ms) rollback transaction
233
-  (0.1ms) begin transaction
234
-  (0.0ms) rollback transaction
235
-  (0.1ms) begin transaction
236
-  (0.0ms) rollback transaction
237
-  (0.1ms) begin transaction
238
-  (0.0ms) rollback transaction
239
-  (0.9ms) SELECT sqlite_version(*)
240
-  (0.1ms) begin transaction
241
-  (0.1ms) rollback transaction
242
-  (0.0ms) begin transaction
243
-  (0.1ms) rollback transaction
244
-  (0.1ms) begin transaction
245
-  (0.0ms) rollback transaction
246
-  (0.1ms) begin transaction
247
-  (0.1ms) rollback transaction
248
-  (0.0ms) begin transaction
249
-  (0.0ms) rollback transaction
250
-  (0.1ms) begin transaction
251
- Started POST "/interapp" for 127.0.0.1 at 2019-09-05 16:37:16 +1000
252
- Processing by Interapp::MessagesController#create as HTML
253
- Parameters: {"test"=>["message", "payload"], "message"=>{"test"=>["message", "payload"]}}
254
- Completed 403 Forbidden in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 273)
255
-  (0.0ms) rollback transaction
256
-  (0.0ms) begin transaction
257
- Started POST "/interapp" for 127.0.0.1 at 2019-09-05 16:37:16 +1000
258
- Processing by Interapp::MessagesController#create as HTML
259
- Parameters: {"test"=>["message", "payload"], "message"=>{"test"=>["message", "payload"]}}
260
- Completed 403 Forbidden in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 150)
261
-  (0.1ms) rollback transaction
262
-  (0.0ms) begin transaction
263
- Started POST "/interapp" for 127.0.0.1 at 2019-09-05 16:37:16 +1000
264
- Processing by Interapp::MessagesController#create as HTML
265
- Parameters: {"test"=>["message", "payload"], "message"=>{"test"=>["message", "payload"]}}
266
- Completed 200 OK in 139ms (Views: 0.1ms | ActiveRecord: 0.0ms | Allocations: 774087)
267
-  (0.0ms) rollback transaction
268
-  (0.0ms) begin transaction
269
-  (0.1ms) rollback transaction
270
-  (0.1ms) begin transaction
271
-  (0.1ms) rollback transaction
272
-  (0.1ms) begin transaction
273
-  (0.0ms) rollback transaction
274
-  (0.0ms) begin transaction
275
-  (0.0ms) rollback transaction
276
-  (0.0ms) begin transaction
277
-  (0.0ms) rollback transaction
278
-  (0.0ms) begin transaction
279
-  (0.0ms) rollback transaction
280
-  (0.0ms) begin transaction
281
-  (0.0ms) rollback transaction
282
-  (0.0ms) begin transaction
283
-  (0.1ms) rollback transaction
284
-  (0.1ms) begin transaction
285
-  (0.1ms) rollback transaction
286
-  (0.0ms) begin transaction
287
-  (0.1ms) rollback transaction