pusher-chatkit-server 1.7.1 → 1.9.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/lib/chatkit/client.rb +120 -0
- data/lib/chatkit/unexpected_parameter_error.rb +16 -0
- metadata +4 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8f1360ff9feccb4f766894cdab7fdd2e5b70df22
|
|
4
|
+
data.tar.gz: 7d55dd3ce6c62b4e9f16afed095c0a1cc0344342
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fbd3b994d6dde617c0901f048fe37fcca0af44239882c0f727d7482bf1e6e8e96c4b7b58d33b256c4a2c03236ca59da39ecc91e09ca9c6046dbaffc898e9be72
|
|
7
|
+
data.tar.gz: 362a87278223cfbb96a88027e81f97c13c72b74ff6b5b152290566672f441b419c3dabaf04b34dcd976f6477fc0519b3f5ab1b5a7c54ea543015ea9053a41734
|
data/lib/chatkit/client.rb
CHANGED
|
@@ -531,6 +531,126 @@ module Chatkit
|
|
|
531
531
|
})
|
|
532
532
|
end
|
|
533
533
|
|
|
534
|
+
def edit_simple_message(room_id, message_id, options)
|
|
535
|
+
verify({text: "You must provide some text for the message",
|
|
536
|
+
}, options)
|
|
537
|
+
|
|
538
|
+
options[:parts] = [{type: "text/plain",
|
|
539
|
+
content: options[:text]
|
|
540
|
+
}]
|
|
541
|
+
|
|
542
|
+
edit_multipart_message(room_id, message_id, options)
|
|
543
|
+
end
|
|
544
|
+
|
|
545
|
+
def edit_multipart_message(room_id, message_id, options)
|
|
546
|
+
verify({
|
|
547
|
+
sender_id: "You must provide the ID of the user editing the message",
|
|
548
|
+
parts: "You must provide a parts array",
|
|
549
|
+
}, options)
|
|
550
|
+
verify({
|
|
551
|
+
room_id: "You must provide the ID of the room in which the message to edit belongs",
|
|
552
|
+
message_id: "You must provide the ID of the message to edit",
|
|
553
|
+
}, {room_id: room_id, message_id: message_id})
|
|
554
|
+
if !options['room_id'].nil?
|
|
555
|
+
raise Chatkit::UnexpectedParameterError.new("a messages room id cannot be edited")
|
|
556
|
+
end
|
|
557
|
+
if !options['message_id'].nil?
|
|
558
|
+
raise Chatkit::UnexpectedParameterError.new("a messages id cannot be edited")
|
|
559
|
+
end
|
|
560
|
+
|
|
561
|
+
if not options[:parts].length > 0
|
|
562
|
+
raise Chatkit::MissingParameterError.new("parts array must have at least one item")
|
|
563
|
+
end
|
|
564
|
+
|
|
565
|
+
# this assumes the token lives long enough to finish all S3 uploads
|
|
566
|
+
token = generate_su_token({ user_id: options[:sender_id] })[:token]
|
|
567
|
+
|
|
568
|
+
request_parts = options[:parts].map { |part|
|
|
569
|
+
verify({type: "Each part must define a type"}, part)
|
|
570
|
+
|
|
571
|
+
if !part[:content].nil?
|
|
572
|
+
{
|
|
573
|
+
type: part[:type],
|
|
574
|
+
content: part[:content]
|
|
575
|
+
}
|
|
576
|
+
elsif !part[:url].nil?
|
|
577
|
+
{
|
|
578
|
+
type: part[:type],
|
|
579
|
+
url: part[:url]
|
|
580
|
+
}
|
|
581
|
+
elsif !part[:file].nil?
|
|
582
|
+
attachment_id = upload_attachment(token, room_id, part)
|
|
583
|
+
{
|
|
584
|
+
type: part[:type],
|
|
585
|
+
attachment: {id: attachment_id},
|
|
586
|
+
}.reject{ |_,v| v.nil? }
|
|
587
|
+
else
|
|
588
|
+
raise Chatkit::MissingParameterError.new("Each part must have one of :file, :content or :url")
|
|
589
|
+
end
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
api_request({
|
|
593
|
+
method: "PUT",
|
|
594
|
+
path: "/rooms/#{CGI::escape room_id}/messages/#{message_id}",
|
|
595
|
+
body: {parts: request_parts},
|
|
596
|
+
jwt: token
|
|
597
|
+
})
|
|
598
|
+
end
|
|
599
|
+
|
|
600
|
+
def edit_message(room_id, message_id, options)
|
|
601
|
+
if room_id.nil?
|
|
602
|
+
raise Chatkit::MissingParameterError.new("You must provide the ID of the room in which the message to edit belongs")
|
|
603
|
+
end
|
|
604
|
+
|
|
605
|
+
if message_id.nil?
|
|
606
|
+
raise Chatkit::MissingParameterError.new("You must provide the ID of the message to edit")
|
|
607
|
+
end
|
|
608
|
+
|
|
609
|
+
if options[:sender_id].nil?
|
|
610
|
+
raise Chatkit::MissingParameterError.new("You must provide the ID of the user editing the message")
|
|
611
|
+
end
|
|
612
|
+
|
|
613
|
+
if options[:text].nil?
|
|
614
|
+
raise Chatkit::MissingParameterError.new("You must provide some text for the message")
|
|
615
|
+
end
|
|
616
|
+
|
|
617
|
+
if !options['room_id'].nil?
|
|
618
|
+
raise Chatkit::UnexpectedParameterError.new("a messages room id cannot be edited")
|
|
619
|
+
end
|
|
620
|
+
if !options['message_id'].nil?
|
|
621
|
+
raise Chatkit::UnexpectedParameterError.new("a messages id cannot be edited")
|
|
622
|
+
end
|
|
623
|
+
|
|
624
|
+
|
|
625
|
+
attachment = options[:attachment]
|
|
626
|
+
|
|
627
|
+
unless attachment.nil?
|
|
628
|
+
if attachment[:resource_link].nil?
|
|
629
|
+
raise Chatkit::MissingParameterError.new("You must provide a resource_link for the message attachment")
|
|
630
|
+
end
|
|
631
|
+
|
|
632
|
+
valid_file_types = ['image', 'video', 'audio', 'file']
|
|
633
|
+
|
|
634
|
+
if attachment[:type].nil? || !valid_file_types.include?(attachment[:type])
|
|
635
|
+
raise Chatkit::MissingParameterError.new(
|
|
636
|
+
"You must provide a valid type for the message attachment, i.e. one of: #{valid_file_types.join(', ')}"
|
|
637
|
+
)
|
|
638
|
+
end
|
|
639
|
+
end
|
|
640
|
+
|
|
641
|
+
payload = {
|
|
642
|
+
text: options[:text],
|
|
643
|
+
attachment: options[:attachment]
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
api_v2_request({
|
|
647
|
+
method: "PUT",
|
|
648
|
+
path: "/rooms/#{CGI::escape room_id}/messages/#{message_id}",
|
|
649
|
+
body: payload,
|
|
650
|
+
jwt: generate_su_token({ user_id: options[:sender_id] })[:token]
|
|
651
|
+
})
|
|
652
|
+
end
|
|
653
|
+
|
|
534
654
|
# Roles and permissions API
|
|
535
655
|
|
|
536
656
|
def create_global_role(options)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require_relative './error'
|
|
2
|
+
|
|
3
|
+
module Chatkit
|
|
4
|
+
class UnexpectedParameterError < Chatkit::Error
|
|
5
|
+
attr_accessor :message
|
|
6
|
+
|
|
7
|
+
def initialize(message)
|
|
8
|
+
@message = message
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def to_s
|
|
12
|
+
"Chatkit::UnexpectedParameterError - #{@message}"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pusher-chatkit-server
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.9.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pusher
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-11
|
|
11
|
+
date: 2019-12-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: pusher-platform
|
|
@@ -35,6 +35,7 @@ files:
|
|
|
35
35
|
- lib/chatkit/error.rb
|
|
36
36
|
- lib/chatkit/missing_parameter_error.rb
|
|
37
37
|
- lib/chatkit/response_error.rb
|
|
38
|
+
- lib/chatkit/unexpected_parameter_error.rb
|
|
38
39
|
- lib/chatkit/upload_error.rb
|
|
39
40
|
homepage:
|
|
40
41
|
licenses:
|
|
@@ -56,7 +57,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
56
57
|
version: '0'
|
|
57
58
|
requirements: []
|
|
58
59
|
rubyforge_project:
|
|
59
|
-
rubygems_version: 2.
|
|
60
|
+
rubygems_version: 2.5.2
|
|
60
61
|
signing_key:
|
|
61
62
|
specification_version: 4
|
|
62
63
|
summary: Pusher Chatkit Ruby SDK
|