matrix_sdk 2.3.0 → 2.6.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 +4 -4
- data/CHANGELOG.md +25 -0
- data/README.md +2 -0
- data/lib/matrix_sdk/api.rb +52 -18
- data/lib/matrix_sdk/client.rb +41 -27
- data/lib/matrix_sdk/mxid.rb +41 -1
- data/lib/matrix_sdk/protocols/cs.rb +134 -108
- data/lib/matrix_sdk/protocols/msc.rb +5 -0
- data/lib/matrix_sdk/room.rb +106 -39
- data/lib/matrix_sdk/rooms/space.rb +79 -0
- data/lib/matrix_sdk/user.rb +4 -4
- data/lib/matrix_sdk/util/events.rb +4 -6
- data/lib/matrix_sdk/util/extensions.rb +13 -19
- data/lib/matrix_sdk/util/tinycache.rb +31 -7
- data/lib/matrix_sdk/util/tinycache_adapter.rb +5 -0
- data/lib/matrix_sdk/util/uri.rb +101 -0
- data/lib/matrix_sdk/version.rb +1 -1
- data/lib/matrix_sdk.rb +10 -0
- metadata +5 -3
@@ -13,8 +13,10 @@ module MatrixSdk::Protocols::CS
|
|
13
13
|
def client_api_versions
|
14
14
|
(@client_api_versions ||= request(:get, :client, '/versions')).versions.tap do |vers|
|
15
15
|
vers.instance_eval <<-'CODE', __FILE__, __LINE__ + 1
|
16
|
-
|
17
|
-
|
16
|
+
if !respond_to? :latest
|
17
|
+
def latest
|
18
|
+
last
|
19
|
+
end
|
18
20
|
end
|
19
21
|
CODE
|
20
22
|
end
|
@@ -39,10 +41,20 @@ module MatrixSdk::Protocols::CS
|
|
39
41
|
end
|
40
42
|
end
|
41
43
|
|
44
|
+
# Gets the latest version of the client API
|
45
|
+
# @return [Symbol] :client_r0 / :client_v3 / etc
|
46
|
+
def client_api_latest
|
47
|
+
@client_api_latest ||= :client_v3 if client_api_versions.any? { |v| v.start_with? 'v1.1' }
|
48
|
+
@client_api_latest ||= :client_r0
|
49
|
+
rescue StandardError => e
|
50
|
+
logger.warn "Failed to look up supported client API, defaulting to r0. The error was #{e.class}: #{e}"
|
51
|
+
@client_api_latest ||= :client_r0
|
52
|
+
end
|
53
|
+
|
42
54
|
# Gets the list of available methods for logging in
|
43
55
|
# @return [Response]
|
44
56
|
def allowed_login_methods
|
45
|
-
request(:get,
|
57
|
+
request(:get, client_api_latest, '/login')
|
46
58
|
end
|
47
59
|
|
48
60
|
# Runs the client API /sync method
|
@@ -64,7 +76,7 @@ module MatrixSdk::Protocols::CS
|
|
64
76
|
query[:timeout] = params.delete(:timeout_ms).to_i if params.key? :timeout_ms
|
65
77
|
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
66
78
|
|
67
|
-
request(:get,
|
79
|
+
request(:get, client_api_latest, '/sync', query: query)
|
68
80
|
end
|
69
81
|
|
70
82
|
# Registers a user using the client API /register endpoint
|
@@ -90,7 +102,7 @@ module MatrixSdk::Protocols::CS
|
|
90
102
|
store_token = params.delete(:store_token) { !protocol?(:AS) }
|
91
103
|
store_device_id = params.delete(:store_device_id) { store_token }
|
92
104
|
|
93
|
-
request(:post,
|
105
|
+
request(:post, client_api_latest, '/register', body: params, query: query).tap do |resp|
|
94
106
|
@access_token = resp.token if resp.key?(:token) && store_token
|
95
107
|
@device_id = resp.device_id if resp.key?(:device_id) && store_device_id
|
96
108
|
end
|
@@ -113,7 +125,7 @@ module MatrixSdk::Protocols::CS
|
|
113
125
|
next_link: next_link
|
114
126
|
}.compact
|
115
127
|
|
116
|
-
request(:post,
|
128
|
+
request(:post, client_api_latest, '/register/email/requestToken', body: body)
|
117
129
|
end
|
118
130
|
|
119
131
|
# Requests to register a phone number to the current account
|
@@ -135,7 +147,7 @@ module MatrixSdk::Protocols::CS
|
|
135
147
|
next_link: next_link
|
136
148
|
}.compact
|
137
149
|
|
138
|
-
request(:post,
|
150
|
+
request(:post, client_api_latest, '/register/msisdn/requestToken', body: body)
|
139
151
|
end
|
140
152
|
|
141
153
|
# Checks if a given username is available and valid for registering
|
@@ -148,7 +160,7 @@ module MatrixSdk::Protocols::CS
|
|
148
160
|
# @return [Response]
|
149
161
|
# @see https://matrix.org/docs/spec/client_server/latest.html#get-matrix-client-r0-register-available
|
150
162
|
def username_available?(username)
|
151
|
-
request(:get,
|
163
|
+
request(:get, client_api_latest, '/register/available', query: { username: username })
|
152
164
|
end
|
153
165
|
|
154
166
|
# Logs in using the client API /login endpoint, and optionally stores the resulting access for API usage
|
@@ -190,8 +202,8 @@ module MatrixSdk::Protocols::CS
|
|
190
202
|
}.merge params
|
191
203
|
data[:device_id] = device_id if device_id
|
192
204
|
|
193
|
-
request(:post,
|
194
|
-
@access_token = resp.
|
205
|
+
request(:post, client_api_latest, '/login', body: data, query: query).tap do |resp|
|
206
|
+
@access_token = resp.access_token if resp.key?(:access_token) && options[:store_token]
|
195
207
|
@device_id = resp.device_id if resp.key?(:device_id) && options[:store_device_id]
|
196
208
|
end
|
197
209
|
end
|
@@ -204,7 +216,7 @@ module MatrixSdk::Protocols::CS
|
|
204
216
|
query = {}
|
205
217
|
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
206
218
|
|
207
|
-
request(:post,
|
219
|
+
request(:post, client_api_latest, '/logout', query: query)
|
208
220
|
end
|
209
221
|
|
210
222
|
# Logs out the currently logged in user
|
@@ -215,7 +227,7 @@ module MatrixSdk::Protocols::CS
|
|
215
227
|
query = {}
|
216
228
|
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
217
229
|
|
218
|
-
request(:post,
|
230
|
+
request(:post, client_api_latest, '/logout/all', query: query)
|
219
231
|
end
|
220
232
|
|
221
233
|
# Changes the users password
|
@@ -235,7 +247,7 @@ module MatrixSdk::Protocols::CS
|
|
235
247
|
auth: auth
|
236
248
|
}
|
237
249
|
|
238
|
-
request(:post,
|
250
|
+
request(:post, client_api_latest, '/account/password', body: body, query: query)
|
239
251
|
end
|
240
252
|
|
241
253
|
# Requests an authentication token based on an email address
|
@@ -255,7 +267,7 @@ module MatrixSdk::Protocols::CS
|
|
255
267
|
next_link: next_link
|
256
268
|
}.compact
|
257
269
|
|
258
|
-
request(:post,
|
270
|
+
request(:post, client_api_latest, '/account/password/email/requestToken', body: body)
|
259
271
|
end
|
260
272
|
|
261
273
|
# Requests an authentication token based on a phone number
|
@@ -277,7 +289,7 @@ module MatrixSdk::Protocols::CS
|
|
277
289
|
next_link: next_link
|
278
290
|
}.compact
|
279
291
|
|
280
|
-
request(:post,
|
292
|
+
request(:post, client_api_latest, '/account/password/msisdn/requestToken', body: body)
|
281
293
|
end
|
282
294
|
|
283
295
|
# Deactivates the current account, logging out all connected devices and preventing future logins
|
@@ -293,14 +305,14 @@ module MatrixSdk::Protocols::CS
|
|
293
305
|
id_server: id_server
|
294
306
|
}.compact
|
295
307
|
|
296
|
-
request(:post,
|
308
|
+
request(:post, client_api_latest, '/account/deactivate', body: body)
|
297
309
|
end
|
298
310
|
|
299
311
|
def get_3pids(**params)
|
300
312
|
query = {}
|
301
313
|
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
302
314
|
|
303
|
-
request(:get,
|
315
|
+
request(:get, client_api_latest, '/account/3pid', query: query)
|
304
316
|
end
|
305
317
|
|
306
318
|
# Finishes a 3PID addition to the current user
|
@@ -318,7 +330,7 @@ module MatrixSdk::Protocols::CS
|
|
318
330
|
auth: auth_data
|
319
331
|
}.compact
|
320
332
|
|
321
|
-
request(:post,
|
333
|
+
request(:post, client_api_latest, '/account/3pid/add', body: body)
|
322
334
|
end
|
323
335
|
|
324
336
|
# Finishes binding a 3PID to the current user
|
@@ -338,7 +350,7 @@ module MatrixSdk::Protocols::CS
|
|
338
350
|
sid: session
|
339
351
|
}
|
340
352
|
|
341
|
-
request(:post,
|
353
|
+
request(:post, client_api_latest, '/account/3pid/bind', body: body)
|
342
354
|
end
|
343
355
|
|
344
356
|
# Deletes a 3PID from the current user, this method might not unbind it from the identity server
|
@@ -356,7 +368,7 @@ module MatrixSdk::Protocols::CS
|
|
356
368
|
medium: medium
|
357
369
|
}
|
358
370
|
|
359
|
-
request(:post,
|
371
|
+
request(:post, client_api_latest, '/account/3pid/delete', body: body)
|
360
372
|
end
|
361
373
|
|
362
374
|
# Unbinds a 3PID from the current user
|
@@ -374,7 +386,7 @@ module MatrixSdk::Protocols::CS
|
|
374
386
|
medium: medium
|
375
387
|
}
|
376
388
|
|
377
|
-
request(:post,
|
389
|
+
request(:post, client_api_latest, '/account/3pid/unbind', body: body)
|
378
390
|
end
|
379
391
|
|
380
392
|
# Gets the list of rooms joined by the current user
|
@@ -385,7 +397,7 @@ module MatrixSdk::Protocols::CS
|
|
385
397
|
query = {}
|
386
398
|
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
387
399
|
|
388
|
-
request(:get,
|
400
|
+
request(:get, client_api_latest, '/joined_rooms', query: query)
|
389
401
|
end
|
390
402
|
|
391
403
|
# Gets the list of public rooms on a Matrix server
|
@@ -418,7 +430,7 @@ module MatrixSdk::Protocols::CS
|
|
418
430
|
query = query.merge(params).compact
|
419
431
|
end
|
420
432
|
|
421
|
-
request(method,
|
433
|
+
request(method, client_api_latest, '/publicRooms', query: query, body: body)
|
422
434
|
end
|
423
435
|
|
424
436
|
# Creates a new room
|
@@ -440,7 +452,29 @@ module MatrixSdk::Protocols::CS
|
|
440
452
|
content[:invite] = [params.delete(:invite)].flatten if params[:invite]
|
441
453
|
content.merge! params
|
442
454
|
|
443
|
-
request(:post,
|
455
|
+
request(:post, client_api_latest, '/createRoom', body: content, query: query)
|
456
|
+
end
|
457
|
+
|
458
|
+
# Knock on a room
|
459
|
+
#
|
460
|
+
# @param id_or_alias [MXID,String] The room ID or Alias to knock
|
461
|
+
# @param reason [String] A reason for the knock, will be attached to the membership data
|
462
|
+
# @param server_name [String[]] A list of servers to perform the join through
|
463
|
+
# @param params [Hash] Extra room knock options
|
464
|
+
# @return [Response] A response hash with at least the parameter :room_id
|
465
|
+
# @see https://spec.matrix.org/v1.1/client-server-api/#knocking-on-rooms
|
466
|
+
# The Matrix Spec, for more information about the call and response
|
467
|
+
def knock_room(id_or_alias, reason: nil, server_name: nil, **params)
|
468
|
+
query = {}
|
469
|
+
query[:server_name] = server_name if server_name
|
470
|
+
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
471
|
+
|
472
|
+
content = {}
|
473
|
+
content[:reason] = reason if reason
|
474
|
+
|
475
|
+
id_or_alias = ERB::Util.url_encode id_or_alias.to_s
|
476
|
+
|
477
|
+
request(:post, client_api_latest, "/knock/#{id_or_alias}", body: content, query: query)
|
444
478
|
end
|
445
479
|
|
446
480
|
# Joins a room
|
@@ -451,17 +485,17 @@ module MatrixSdk::Protocols::CS
|
|
451
485
|
# @see https://matrix.org/docs/spec/client_server/latest.html#post-matrix-client-r0-join-roomidoralias
|
452
486
|
# The Matrix Spec, for more information about the call and response
|
453
487
|
# @todo Add support for 3rd-party signed objects
|
454
|
-
def join_room(id_or_alias, **params)
|
488
|
+
def join_room(id_or_alias, reason: nil, **params)
|
455
489
|
query = {}
|
456
490
|
query[:server_name] = params[:server_name] if params[:server_name]
|
457
491
|
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
458
492
|
|
459
|
-
|
460
|
-
|
493
|
+
content = {}
|
494
|
+
content[:reason] = reason if reason
|
461
495
|
|
462
496
|
id_or_alias = ERB::Util.url_encode id_or_alias.to_s
|
463
497
|
|
464
|
-
request(:post,
|
498
|
+
request(:post, client_api_latest, "/join/#{id_or_alias}", body: content, query: query)
|
465
499
|
end
|
466
500
|
|
467
501
|
# Sends a state event to a room
|
@@ -482,7 +516,7 @@ module MatrixSdk::Protocols::CS
|
|
482
516
|
event_type = ERB::Util.url_encode event_type.to_s
|
483
517
|
state_key = ERB::Util.url_encode params[:state_key].to_s if params.key? :state_key
|
484
518
|
|
485
|
-
request(:put,
|
519
|
+
request(:put, client_api_latest, "/rooms/#{room_id}/state/#{event_type}#{"/#{state_key}" unless state_key.nil?}", body: content, query: query)
|
486
520
|
end
|
487
521
|
|
488
522
|
# Sends a message event to a room
|
@@ -505,7 +539,7 @@ module MatrixSdk::Protocols::CS
|
|
505
539
|
event_type = ERB::Util.url_encode event_type.to_s
|
506
540
|
txn_id = ERB::Util.url_encode txn_id.to_s
|
507
541
|
|
508
|
-
request(:put,
|
542
|
+
request(:put, client_api_latest, "/rooms/#{room_id}/send/#{event_type}/#{txn_id}", body: content, query: query)
|
509
543
|
end
|
510
544
|
|
511
545
|
# Redact an event in a room
|
@@ -531,7 +565,7 @@ module MatrixSdk::Protocols::CS
|
|
531
565
|
event_id = ERB::Util.url_encode event_id.to_s
|
532
566
|
txn_id = ERB::Util.url_encode txn_id.to_s
|
533
567
|
|
534
|
-
request(:put,
|
568
|
+
request(:put, client_api_latest, "/rooms/#{room_id}/redact/#{event_id}/#{txn_id}", body: content, query: query)
|
535
569
|
end
|
536
570
|
|
537
571
|
# Send a content message to a room
|
@@ -687,7 +721,7 @@ module MatrixSdk::Protocols::CS
|
|
687
721
|
room_id = ERB::Util.url_encode room_id.to_s
|
688
722
|
event_id = ERB::Util.url_encode event_id.to_s
|
689
723
|
|
690
|
-
request(:post,
|
724
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/report/#{event_id}", body: body, query: query)
|
691
725
|
end
|
692
726
|
|
693
727
|
# Retrieve additional messages in a room
|
@@ -714,7 +748,7 @@ module MatrixSdk::Protocols::CS
|
|
714
748
|
|
715
749
|
room_id = ERB::Util.url_encode room_id.to_s
|
716
750
|
|
717
|
-
request(:get,
|
751
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/messages", query: query)
|
718
752
|
end
|
719
753
|
|
720
754
|
# Gets a specific event from a room
|
@@ -731,7 +765,7 @@ module MatrixSdk::Protocols::CS
|
|
731
765
|
room_id = ERB::Util.url_encode room_id.to_s
|
732
766
|
event_id = ERB::Util.url_encode event_id.to_s
|
733
767
|
|
734
|
-
request(:get,
|
768
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/event/#{event_id}", query: query)
|
735
769
|
end
|
736
770
|
|
737
771
|
# Reads the latest instance of a room state event
|
@@ -749,7 +783,7 @@ module MatrixSdk::Protocols::CS
|
|
749
783
|
state_type = ERB::Util.url_encode state_type.to_s
|
750
784
|
key = ERB::Util.url_encode key.to_s
|
751
785
|
|
752
|
-
request(:get,
|
786
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/state/#{state_type}#{key.empty? ? nil : "/#{key}"}", query: query)
|
753
787
|
end
|
754
788
|
|
755
789
|
# Retrieves all current state objects from a room
|
@@ -764,7 +798,7 @@ module MatrixSdk::Protocols::CS
|
|
764
798
|
|
765
799
|
room_id = ERB::Util.url_encode room_id.to_s
|
766
800
|
|
767
|
-
request(:get,
|
801
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/state", query: query)
|
768
802
|
end
|
769
803
|
|
770
804
|
# Retrieves number of events that happened just before and after the specified event
|
@@ -788,7 +822,7 @@ module MatrixSdk::Protocols::CS
|
|
788
822
|
room_id = ERB::Util.url_encode room_id.to_s
|
789
823
|
event_id = ERB::Util.url_encode event_id.to_s
|
790
824
|
|
791
|
-
request(:get,
|
825
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/context/#{event_id}", query: query)
|
792
826
|
end
|
793
827
|
|
794
828
|
## Specialized getters for specced state
|
@@ -878,31 +912,23 @@ module MatrixSdk::Protocols::CS
|
|
878
912
|
send_state_event(room_id, 'm.room.avatar', content, **params)
|
879
913
|
end
|
880
914
|
|
881
|
-
# Gets a list of
|
915
|
+
# Gets a list of currently known aliases of a room
|
882
916
|
#
|
883
917
|
# @param [MXID,String] room_id The room ID to look up
|
884
|
-
# @param [Hash] params Extra options to provide to the request, see #get_room_state
|
885
918
|
# @return [Response] A response hash with the array :aliases
|
886
|
-
# @raise [
|
887
|
-
# @see
|
888
|
-
# @see https://matrix.org/docs/spec/client_server/latest.html#m-room-avatar
|
919
|
+
# @raise [MatrixForbiddenError] Raised if the user doesn't have the right to read aliases
|
920
|
+
# @see https://spec.matrix.org/v1.1/client-server-api/#get_matrixclientv3roomsroomidaliases
|
889
921
|
# The Matrix Spec, for more information about the event and data
|
890
922
|
# @example Looking up aliases for a room
|
891
923
|
# api.get_room_aliases('!QtykxKocfZaZOUrTwp:matrix.org')
|
892
|
-
# # MatrixSdk::MatrixNotFoundError: HTTP 404 (M_NOT_FOUND): Event not found.
|
893
|
-
# api.get_room_aliases('!QtykxKocfZaZOUrTwp:matrix.org', key: 'matrix.org')
|
894
924
|
# # => {:aliases=>["#matrix:matrix.org"]}
|
895
|
-
# api.get_room_aliases('!QtykxKocfZaZOUrTwp:matrix.org', key: 'kittenface.studio')
|
896
|
-
# # => {:aliases=>["#worlddominationhq:kittenface.studio"]}
|
897
|
-
# @example A way to find all aliases for a room
|
898
|
-
# api.get_room_state('!mjbDjyNsRXndKLkHIe:matrix.org')
|
899
|
-
# .select { |ch| ch[:type] == 'm.room.aliases' }
|
900
|
-
# .map { |ch| ch[:content][:aliases] }
|
901
|
-
# .flatten
|
902
|
-
# .compact
|
903
|
-
# # => ["#synapse:im.kabi.tk", "#synapse:matrix.org", "#synapse-community:matrix.org", "#synapse-ops:matrix.org", "#synops:matrix.org", ...
|
904
925
|
def get_room_aliases(room_id, **params)
|
905
|
-
|
926
|
+
query = {}
|
927
|
+
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
928
|
+
|
929
|
+
room_id = ERB::Util.url_encode room_id.to_s
|
930
|
+
|
931
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/aliases", query: query)
|
906
932
|
end
|
907
933
|
|
908
934
|
# Gets a list of pinned events in a room
|
@@ -1125,7 +1151,7 @@ module MatrixSdk::Protocols::CS
|
|
1125
1151
|
|
1126
1152
|
room_id = ERB::Util.url_encode room_id.to_s
|
1127
1153
|
|
1128
|
-
request(:post,
|
1154
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/leave", query: query)
|
1129
1155
|
end
|
1130
1156
|
|
1131
1157
|
def forget_room(room_id, **params)
|
@@ -1134,7 +1160,7 @@ module MatrixSdk::Protocols::CS
|
|
1134
1160
|
|
1135
1161
|
room_id = ERB::Util.url_encode room_id.to_s
|
1136
1162
|
|
1137
|
-
request(:post,
|
1163
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/forget", query: query)
|
1138
1164
|
end
|
1139
1165
|
|
1140
1166
|
# Directly joins a room by ID
|
@@ -1154,7 +1180,7 @@ module MatrixSdk::Protocols::CS
|
|
1154
1180
|
|
1155
1181
|
room_id = ERB::Util.url_encode room_id.to_s
|
1156
1182
|
|
1157
|
-
request(:post,
|
1183
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/join", body: body, query: query)
|
1158
1184
|
end
|
1159
1185
|
|
1160
1186
|
def invite_user(room_id, user_id, **params)
|
@@ -1167,7 +1193,7 @@ module MatrixSdk::Protocols::CS
|
|
1167
1193
|
|
1168
1194
|
room_id = ERB::Util.url_encode room_id.to_s
|
1169
1195
|
|
1170
|
-
request(:post,
|
1196
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/invite", body: content, query: query)
|
1171
1197
|
end
|
1172
1198
|
|
1173
1199
|
def kick_user(room_id, user_id, reason: '', **params)
|
@@ -1180,7 +1206,7 @@ module MatrixSdk::Protocols::CS
|
|
1180
1206
|
}
|
1181
1207
|
room_id = ERB::Util.url_encode room_id.to_s
|
1182
1208
|
|
1183
|
-
request(:post,
|
1209
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/kick", body: content, query: query)
|
1184
1210
|
end
|
1185
1211
|
|
1186
1212
|
def get_membership(room_id, user_id, **params)
|
@@ -1190,7 +1216,7 @@ module MatrixSdk::Protocols::CS
|
|
1190
1216
|
room_id = ERB::Util.url_encode room_id.to_s
|
1191
1217
|
user_id = ERB::Util.url_encode user_id.to_s
|
1192
1218
|
|
1193
|
-
request(:get,
|
1219
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/state/m.room.member/#{user_id}", query: query)
|
1194
1220
|
end
|
1195
1221
|
|
1196
1222
|
def set_membership(room_id, user_id, membership, reason: '', **params)
|
@@ -1214,7 +1240,7 @@ module MatrixSdk::Protocols::CS
|
|
1214
1240
|
}
|
1215
1241
|
room_id = ERB::Util.url_encode room_id.to_s
|
1216
1242
|
|
1217
|
-
request(:post,
|
1243
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/ban", body: content, query: query)
|
1218
1244
|
end
|
1219
1245
|
|
1220
1246
|
def unban_user(room_id, user_id, **params)
|
@@ -1226,7 +1252,7 @@ module MatrixSdk::Protocols::CS
|
|
1226
1252
|
}
|
1227
1253
|
room_id = ERB::Util.url_encode room_id.to_s
|
1228
1254
|
|
1229
|
-
request(:post,
|
1255
|
+
request(:post, client_api_latest, "/rooms/#{room_id}/unban", body: content, query: query)
|
1230
1256
|
end
|
1231
1257
|
|
1232
1258
|
# Gets the room directory visibility status for a room
|
@@ -1241,7 +1267,7 @@ module MatrixSdk::Protocols::CS
|
|
1241
1267
|
|
1242
1268
|
room_id = ERB::Util.url_encode room_id.to_s
|
1243
1269
|
|
1244
|
-
request(:get,
|
1270
|
+
request(:get, client_api_latest, "/directory/list/room/#{room_id}", query: query)
|
1245
1271
|
end
|
1246
1272
|
|
1247
1273
|
# Sets the room directory visibility status for a room
|
@@ -1261,7 +1287,7 @@ module MatrixSdk::Protocols::CS
|
|
1261
1287
|
|
1262
1288
|
room_id = ERB::Util.url_encode room_id.to_s
|
1263
1289
|
|
1264
|
-
request(:put,
|
1290
|
+
request(:put, client_api_latest, "/directory/list/room/#{room_id}", body: body, query: query)
|
1265
1291
|
end
|
1266
1292
|
|
1267
1293
|
def get_user_tags(user_id, room_id, **params)
|
@@ -1271,7 +1297,7 @@ module MatrixSdk::Protocols::CS
|
|
1271
1297
|
room_id = ERB::Util.url_encode room_id.to_s
|
1272
1298
|
user_id = ERB::Util.url_encode user_id.to_s
|
1273
1299
|
|
1274
|
-
request(:get,
|
1300
|
+
request(:get, client_api_latest, "/user/#{user_id}/rooms/#{room_id}/tags", query: query)
|
1275
1301
|
end
|
1276
1302
|
|
1277
1303
|
def remove_user_tag(user_id, room_id, tag, **params)
|
@@ -1282,7 +1308,7 @@ module MatrixSdk::Protocols::CS
|
|
1282
1308
|
user_id = ERB::Util.url_encode user_id.to_s
|
1283
1309
|
tag = ERB::Util.url_encode tag.to_s
|
1284
1310
|
|
1285
|
-
request(:delete,
|
1311
|
+
request(:delete, client_api_latest, "/user/#{user_id}/rooms/#{room_id}/tags/#{tag}", query: query)
|
1286
1312
|
end
|
1287
1313
|
|
1288
1314
|
def add_user_tag(user_id, room_id, tag, **params)
|
@@ -1300,7 +1326,7 @@ module MatrixSdk::Protocols::CS
|
|
1300
1326
|
user_id = ERB::Util.url_encode user_id.to_s
|
1301
1327
|
tag = ERB::Util.url_encode tag.to_s
|
1302
1328
|
|
1303
|
-
request(:put,
|
1329
|
+
request(:put, client_api_latest, "/user/#{user_id}/rooms/#{room_id}/tags/#{tag}", body: content, query: query)
|
1304
1330
|
end
|
1305
1331
|
|
1306
1332
|
def get_account_data(user_id, type_key, **params)
|
@@ -1310,7 +1336,7 @@ module MatrixSdk::Protocols::CS
|
|
1310
1336
|
user_id = ERB::Util.url_encode user_id.to_s
|
1311
1337
|
type_key = ERB::Util.url_encode type_key.to_s
|
1312
1338
|
|
1313
|
-
request(:get,
|
1339
|
+
request(:get, client_api_latest, "/user/#{user_id}/account_data/#{type_key}", query: query)
|
1314
1340
|
end
|
1315
1341
|
|
1316
1342
|
def set_account_data(user_id, type_key, account_data, **params)
|
@@ -1320,7 +1346,7 @@ module MatrixSdk::Protocols::CS
|
|
1320
1346
|
user_id = ERB::Util.url_encode user_id.to_s
|
1321
1347
|
type_key = ERB::Util.url_encode type_key.to_s
|
1322
1348
|
|
1323
|
-
request(:put,
|
1349
|
+
request(:put, client_api_latest, "/user/#{user_id}/account_data/#{type_key}", body: account_data, query: query)
|
1324
1350
|
end
|
1325
1351
|
|
1326
1352
|
def get_room_account_data(user_id, room_id, type_key, **params)
|
@@ -1331,7 +1357,7 @@ module MatrixSdk::Protocols::CS
|
|
1331
1357
|
room_id = ERB::Util.url_encode room_id.to_s
|
1332
1358
|
type_key = ERB::Util.url_encode type_key.to_s
|
1333
1359
|
|
1334
|
-
request(:get,
|
1360
|
+
request(:get, client_api_latest, "/user/#{user_id}/rooms/#{room_id}/account_data/#{type_key}", query: query)
|
1335
1361
|
end
|
1336
1362
|
|
1337
1363
|
def set_room_account_data(user_id, room_id, type_key, account_data, **params)
|
@@ -1342,7 +1368,7 @@ module MatrixSdk::Protocols::CS
|
|
1342
1368
|
room_id = ERB::Util.url_encode room_id.to_s
|
1343
1369
|
type_key = ERB::Util.url_encode type_key.to_s
|
1344
1370
|
|
1345
|
-
request(:put,
|
1371
|
+
request(:put, client_api_latest, "/user/#{user_id}/rooms/#{room_id}/account_data/#{type_key}", body: account_data, query: query)
|
1346
1372
|
end
|
1347
1373
|
|
1348
1374
|
# Retrieve user information
|
@@ -1354,7 +1380,7 @@ module MatrixSdk::Protocols::CS
|
|
1354
1380
|
def whois(user_id)
|
1355
1381
|
user_id = ERB::Util.url_encode user_id.to_s
|
1356
1382
|
|
1357
|
-
request(:get,
|
1383
|
+
request(:get, client_api_latest, "/admin/whois/#{user_id}")
|
1358
1384
|
end
|
1359
1385
|
|
1360
1386
|
def get_filter(user_id, filter_id, **params)
|
@@ -1364,7 +1390,7 @@ module MatrixSdk::Protocols::CS
|
|
1364
1390
|
user_id = ERB::Util.url_encode user_id.to_s
|
1365
1391
|
filter_id = ERB::Util.url_encode filter_id.to_s
|
1366
1392
|
|
1367
|
-
request(:get,
|
1393
|
+
request(:get, client_api_latest, "/user/#{user_id}/filter/#{filter_id}", query: query)
|
1368
1394
|
end
|
1369
1395
|
|
1370
1396
|
# Creates a filter for future use
|
@@ -1377,7 +1403,7 @@ module MatrixSdk::Protocols::CS
|
|
1377
1403
|
|
1378
1404
|
user_id = ERB::Util.url_encode user_id.to_s
|
1379
1405
|
|
1380
|
-
request(:post,
|
1406
|
+
request(:post, client_api_latest, "/user/#{user_id}/filter", body: filter_params, query: query)
|
1381
1407
|
end
|
1382
1408
|
|
1383
1409
|
def media_upload(content, content_type, **params)
|
@@ -1393,7 +1419,7 @@ module MatrixSdk::Protocols::CS
|
|
1393
1419
|
|
1394
1420
|
user_id = ERB::Util.url_encode user_id.to_s
|
1395
1421
|
|
1396
|
-
request(:get,
|
1422
|
+
request(:get, client_api_latest, "/profile/#{user_id}/displayname", query: query)
|
1397
1423
|
end
|
1398
1424
|
|
1399
1425
|
def set_display_name(user_id, display_name, **params)
|
@@ -1406,7 +1432,7 @@ module MatrixSdk::Protocols::CS
|
|
1406
1432
|
|
1407
1433
|
user_id = ERB::Util.url_encode user_id.to_s
|
1408
1434
|
|
1409
|
-
request(:put,
|
1435
|
+
request(:put, client_api_latest, "/profile/#{user_id}/displayname", body: content, query: query)
|
1410
1436
|
end
|
1411
1437
|
|
1412
1438
|
def get_avatar_url(user_id, **params)
|
@@ -1415,7 +1441,7 @@ module MatrixSdk::Protocols::CS
|
|
1415
1441
|
|
1416
1442
|
user_id = ERB::Util.url_encode user_id.to_s
|
1417
1443
|
|
1418
|
-
request(:get,
|
1444
|
+
request(:get, client_api_latest, "/profile/#{user_id}/avatar_url", query: query)
|
1419
1445
|
end
|
1420
1446
|
|
1421
1447
|
# Sets the avatar URL for a user
|
@@ -1435,7 +1461,7 @@ module MatrixSdk::Protocols::CS
|
|
1435
1461
|
# api.set_avatar_url(api.whoami?[:user_id], mxc)
|
1436
1462
|
#
|
1437
1463
|
# @param [String,MXID] user_id The ID of the user to set the avatar for
|
1438
|
-
# @param [String,URI::
|
1464
|
+
# @param [String,URI::MXC] url The new avatar URL, should be a mxc:// URL
|
1439
1465
|
# @return [Response] An empty response hash if the change was successful
|
1440
1466
|
# @see https://matrix.org/docs/spec/client_server/latest#put-matrix-client-r0-profile-userid-avatar-url
|
1441
1467
|
# The Matrix Spec, for more information about the event and data
|
@@ -1449,7 +1475,7 @@ module MatrixSdk::Protocols::CS
|
|
1449
1475
|
|
1450
1476
|
user_id = ERB::Util.url_encode user_id.to_s
|
1451
1477
|
|
1452
|
-
request(:put,
|
1478
|
+
request(:put, client_api_latest, "/profile/#{user_id}/avatar_url", body: content, query: query)
|
1453
1479
|
end
|
1454
1480
|
|
1455
1481
|
# Gets the combined profile object of a user.
|
@@ -1466,7 +1492,7 @@ module MatrixSdk::Protocols::CS
|
|
1466
1492
|
|
1467
1493
|
user_id = ERB::Util.url_encode user_id.to_s
|
1468
1494
|
|
1469
|
-
request(:get,
|
1495
|
+
request(:get, client_api_latest, "/profile/#{user_id}", query: query)
|
1470
1496
|
end
|
1471
1497
|
|
1472
1498
|
# Gets TURN server connection information and credentials
|
@@ -1475,7 +1501,7 @@ module MatrixSdk::Protocols::CS
|
|
1475
1501
|
# @see https://matrix.org/docs/spec/client_server/latest#get-matrix-client-r0-voip-turnserver
|
1476
1502
|
# The Matrix Spec, for more information about the event and data
|
1477
1503
|
def get_turn_server
|
1478
|
-
request(:get,
|
1504
|
+
request(:get, client_api_latest, '/voip/turnServer')
|
1479
1505
|
end
|
1480
1506
|
|
1481
1507
|
# Sets the typing status for a user
|
@@ -1496,7 +1522,7 @@ module MatrixSdk::Protocols::CS
|
|
1496
1522
|
timeout: timeout ? timeout * 1000 : nil
|
1497
1523
|
}.compact
|
1498
1524
|
|
1499
|
-
request(:put,
|
1525
|
+
request(:put, client_api_latest, "/rooms/#{room_id}/typing/#{user_id}", body: body)
|
1500
1526
|
end
|
1501
1527
|
|
1502
1528
|
# Gets the presence status of a user
|
@@ -1508,7 +1534,7 @@ module MatrixSdk::Protocols::CS
|
|
1508
1534
|
def get_presence_status(user_id)
|
1509
1535
|
user_id = ERB::Util.url_encode user_id.to_s
|
1510
1536
|
|
1511
|
-
request(:get,
|
1537
|
+
request(:get, client_api_latest, "/presence/#{user_id}/status")
|
1512
1538
|
end
|
1513
1539
|
|
1514
1540
|
# Sets the presence status of a user
|
@@ -1528,7 +1554,7 @@ module MatrixSdk::Protocols::CS
|
|
1528
1554
|
status_msg: message
|
1529
1555
|
}.compact
|
1530
1556
|
|
1531
|
-
request(:put,
|
1557
|
+
request(:put, client_api_latest, "/presence/#{user_id}/status", body: body)
|
1532
1558
|
end
|
1533
1559
|
|
1534
1560
|
# Converts a Matrix content URL (mxc://) to a media download URL
|
@@ -1545,7 +1571,7 @@ module MatrixSdk::Protocols::CS
|
|
1545
1571
|
# # => #<URI::HTTPS https://matrix.org/_matrix/media/r0/download/example.com/media_hash>
|
1546
1572
|
def get_download_url(mxcurl, source: nil, **_params)
|
1547
1573
|
mxcurl = URI.parse(mxcurl.to_s) unless mxcurl.is_a? URI
|
1548
|
-
raise 'Not a mxc:// URL' unless mxcurl.is_a? URI::
|
1574
|
+
raise 'Not a mxc:// URL' unless mxcurl.is_a? URI::MXC
|
1549
1575
|
|
1550
1576
|
if source
|
1551
1577
|
source = "https://#{source}" unless source.include? '://'
|
@@ -1605,7 +1631,7 @@ module MatrixSdk::Protocols::CS
|
|
1605
1631
|
messages: messages
|
1606
1632
|
}.compact
|
1607
1633
|
|
1608
|
-
request(:put,
|
1634
|
+
request(:put, client_api_latest, "/sendToDevice/#{event_type}/#{txn_id}", body: body)
|
1609
1635
|
end
|
1610
1636
|
|
1611
1637
|
# Gets the room ID for an alias
|
@@ -1618,7 +1644,7 @@ module MatrixSdk::Protocols::CS
|
|
1618
1644
|
|
1619
1645
|
room_alias = ERB::Util.url_encode room_alias.to_s
|
1620
1646
|
|
1621
|
-
request(:get,
|
1647
|
+
request(:get, client_api_latest, "/directory/room/#{room_alias}", query: query)
|
1622
1648
|
end
|
1623
1649
|
|
1624
1650
|
# Sets the room ID for an alias
|
@@ -1635,7 +1661,7 @@ module MatrixSdk::Protocols::CS
|
|
1635
1661
|
}
|
1636
1662
|
room_alias = ERB::Util.url_encode room_alias.to_s
|
1637
1663
|
|
1638
|
-
request(:put,
|
1664
|
+
request(:put, client_api_latest, "/directory/room/#{room_alias}", body: content, query: query)
|
1639
1665
|
end
|
1640
1666
|
|
1641
1667
|
# Remove an alias from its room
|
@@ -1647,7 +1673,7 @@ module MatrixSdk::Protocols::CS
|
|
1647
1673
|
|
1648
1674
|
room_alias = ERB::Util.url_encode room_alias.to_s
|
1649
1675
|
|
1650
|
-
request(:delete,
|
1676
|
+
request(:delete, client_api_latest, "/directory/room/#{room_alias}", query: query)
|
1651
1677
|
end
|
1652
1678
|
|
1653
1679
|
# Gets a list of all the members in a room
|
@@ -1661,7 +1687,7 @@ module MatrixSdk::Protocols::CS
|
|
1661
1687
|
|
1662
1688
|
room_id = ERB::Util.url_encode room_id.to_s
|
1663
1689
|
|
1664
|
-
request(:get,
|
1690
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/members", query: query.merge(params))
|
1665
1691
|
end
|
1666
1692
|
|
1667
1693
|
# Gets a list of the joined members in a room
|
@@ -1676,7 +1702,7 @@ module MatrixSdk::Protocols::CS
|
|
1676
1702
|
|
1677
1703
|
room_id = ERB::Util.url_encode room_id.to_s
|
1678
1704
|
|
1679
|
-
request(:get,
|
1705
|
+
request(:get, client_api_latest, "/rooms/#{room_id}/joined_members", query: query)
|
1680
1706
|
end
|
1681
1707
|
|
1682
1708
|
# Gets a list of the current users registered devices
|
@@ -1684,7 +1710,7 @@ module MatrixSdk::Protocols::CS
|
|
1684
1710
|
# @see https://matrix.org/docs/spec/client_server/latest#get-matrix-client-r0-devices
|
1685
1711
|
# The Matrix Spec, for more information about the data
|
1686
1712
|
def get_devices
|
1687
|
-
request(:get,
|
1713
|
+
request(:get, client_api_latest, '/devices')
|
1688
1714
|
end
|
1689
1715
|
|
1690
1716
|
# Gets the information about a certain client device
|
@@ -1695,7 +1721,7 @@ module MatrixSdk::Protocols::CS
|
|
1695
1721
|
def get_device(device_id)
|
1696
1722
|
device_id = ERB::Util.url_encode device_id.to_s
|
1697
1723
|
|
1698
|
-
request(:get,
|
1724
|
+
request(:get, client_api_latest, "/devices/#{device_id}")
|
1699
1725
|
end
|
1700
1726
|
|
1701
1727
|
# Sets the metadata for a device
|
@@ -1706,7 +1732,7 @@ module MatrixSdk::Protocols::CS
|
|
1706
1732
|
def set_device(device_id, display_name:)
|
1707
1733
|
device_id = ERB::Util.url_encode device_id.to_s
|
1708
1734
|
|
1709
|
-
request(:put,
|
1735
|
+
request(:put, client_api_latest, "/devices/#{device_id}", body: { display_name: display_name })
|
1710
1736
|
end
|
1711
1737
|
|
1712
1738
|
# Removes a device from the current user
|
@@ -1719,7 +1745,7 @@ module MatrixSdk::Protocols::CS
|
|
1719
1745
|
def delete_device(device_id, auth:)
|
1720
1746
|
device_id = ERB::Util.url_encode device_id.to_s
|
1721
1747
|
|
1722
|
-
request(:delete,
|
1748
|
+
request(:delete, client_api_latest, "/devices/#{device_id}", body: { auth: auth })
|
1723
1749
|
end
|
1724
1750
|
|
1725
1751
|
# Run a query for device keys
|
@@ -1744,7 +1770,7 @@ module MatrixSdk::Protocols::CS
|
|
1744
1770
|
body[:timeout] = params[:timeout_ms] if params.key? :timeout_ms
|
1745
1771
|
body[:token] = token if token
|
1746
1772
|
|
1747
|
-
request(:post,
|
1773
|
+
request(:post, client_api_latest, '/keys/query', body: body)
|
1748
1774
|
end
|
1749
1775
|
|
1750
1776
|
# Claim one-time keys for pre-key messaging
|
@@ -1759,7 +1785,7 @@ module MatrixSdk::Protocols::CS
|
|
1759
1785
|
one_time_keys: one_time_keys,
|
1760
1786
|
timeout: timeout * 1000
|
1761
1787
|
}
|
1762
|
-
request(:post,
|
1788
|
+
request(:post, client_api_latest, '/keys/claim', body: body)
|
1763
1789
|
end
|
1764
1790
|
|
1765
1791
|
# Retrieve device key changes between two sync requests
|
@@ -1775,7 +1801,7 @@ module MatrixSdk::Protocols::CS
|
|
1775
1801
|
to: to
|
1776
1802
|
}
|
1777
1803
|
|
1778
|
-
request(:get,
|
1804
|
+
request(:get, client_api_latest, '/keys/changes', query: query)
|
1779
1805
|
end
|
1780
1806
|
|
1781
1807
|
# Gets the list of registered pushers for the current user
|
@@ -1784,7 +1810,7 @@ module MatrixSdk::Protocols::CS
|
|
1784
1810
|
# @see https://matrix.org/docs/spec/client_server/latest#get-matrix-client-r0-pushers
|
1785
1811
|
# The Matrix Spec, for more information about the parameters and data
|
1786
1812
|
def get_pushers
|
1787
|
-
request(:get,
|
1813
|
+
request(:get, client_api_latest, '/pushers')
|
1788
1814
|
end
|
1789
1815
|
|
1790
1816
|
# rubocop:disable Metrics/ParameterLists
|
@@ -1817,7 +1843,7 @@ module MatrixSdk::Protocols::CS
|
|
1817
1843
|
append: params[:append]
|
1818
1844
|
}.compact
|
1819
1845
|
|
1820
|
-
request(:post,
|
1846
|
+
request(:post, client_api_latest, '/pushers/set', body: body)
|
1821
1847
|
end
|
1822
1848
|
# rubocop:enable Metrics/ParameterLists
|
1823
1849
|
|
@@ -1838,7 +1864,7 @@ module MatrixSdk::Protocols::CS
|
|
1838
1864
|
only: only
|
1839
1865
|
}.compact
|
1840
1866
|
|
1841
|
-
request(:get,
|
1867
|
+
request(:get, client_api_latest, '/notifications', query: query)
|
1842
1868
|
end
|
1843
1869
|
|
1844
1870
|
# Retrieves the full list of registered push rules for the current user
|
@@ -1847,7 +1873,7 @@ module MatrixSdk::Protocols::CS
|
|
1847
1873
|
# @see https://matrix.org/docs/spec/client_server/latest#get-matrix-client-r0-pushrules
|
1848
1874
|
# The Matrix Spec, for more information about the parameters and data
|
1849
1875
|
def get_pushrules
|
1850
|
-
request(:get,
|
1876
|
+
request(:get, client_api_latest, '/pushrules/')
|
1851
1877
|
end
|
1852
1878
|
|
1853
1879
|
# Retrieves a single registered push rule for the current user
|
@@ -1863,7 +1889,7 @@ module MatrixSdk::Protocols::CS
|
|
1863
1889
|
kind = ERB::Util.url_encode kind.to_s
|
1864
1890
|
id = ERB::Util.url_encode id.to_s
|
1865
1891
|
|
1866
|
-
request(:get,
|
1892
|
+
request(:get, client_api_latest, "/pushrules/#{scope}/#{kind}/#{id}")
|
1867
1893
|
end
|
1868
1894
|
|
1869
1895
|
# Checks if a push rule for the current user is enabled
|
@@ -1879,7 +1905,7 @@ module MatrixSdk::Protocols::CS
|
|
1879
1905
|
kind = ERB::Util.url_encode kind.to_s
|
1880
1906
|
id = ERB::Util.url_encode id.to_s
|
1881
1907
|
|
1882
|
-
request(:get,
|
1908
|
+
request(:get, client_api_latest, "/pushrules/#{scope}/#{kind}/#{id}/enabled")
|
1883
1909
|
end
|
1884
1910
|
|
1885
1911
|
# Enabled/Disables a specific push rule for the current user
|
@@ -1900,7 +1926,7 @@ module MatrixSdk::Protocols::CS
|
|
1900
1926
|
enabled: enabled
|
1901
1927
|
}
|
1902
1928
|
|
1903
|
-
request(:put,
|
1929
|
+
request(:put, client_api_latest, "/pushrules/#{scope}/#{kind}/#{id}/enabled", body: body)
|
1904
1930
|
end
|
1905
1931
|
|
1906
1932
|
# Gets the current list of actions for a specific push rule for the current user
|
@@ -1916,7 +1942,7 @@ module MatrixSdk::Protocols::CS
|
|
1916
1942
|
kind = ERB::Util.url_encode kind.to_s
|
1917
1943
|
id = ERB::Util.url_encode id.to_s
|
1918
1944
|
|
1919
|
-
request(:get,
|
1945
|
+
request(:get, client_api_latest, "/pushrules/#{scope}/#{kind}/#{id}/actions")
|
1920
1946
|
end
|
1921
1947
|
|
1922
1948
|
# Replaces the list of actions for a push rule for the current user
|
@@ -1939,7 +1965,7 @@ module MatrixSdk::Protocols::CS
|
|
1939
1965
|
actions: actions
|
1940
1966
|
}
|
1941
1967
|
|
1942
|
-
request(:put,
|
1968
|
+
request(:put, client_api_latest, "/pushrules/#{scope}/#{kind}/#{id}/actions", body: body)
|
1943
1969
|
end
|
1944
1970
|
|
1945
1971
|
# Gets the MXID of the currently logged-in user
|
@@ -1948,7 +1974,7 @@ module MatrixSdk::Protocols::CS
|
|
1948
1974
|
query = {}
|
1949
1975
|
query[:user_id] = params.delete(:user_id) if protocol?(:AS) && params.key?(:user_id)
|
1950
1976
|
|
1951
|
-
request(:get,
|
1977
|
+
request(:get, client_api_latest, '/account/whoami', query: query)
|
1952
1978
|
end
|
1953
1979
|
end
|
1954
1980
|
# rubocop:enable Metrics/ModuleLength
|