stream-chat-ruby 0.1.1 → 0.1.2
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/.travis.yml +1 -0
- data/README.md +111 -14
- data/lib/stream-chat/channel.rb +3 -3
- data/lib/stream-chat/client.rb +8 -7
- data/lib/stream-chat/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a991d6254ab0ce129f7828b9f28dc18f90b867ba87ad543d24058ee9742f466b
|
4
|
+
data.tar.gz: c08d620794b6ddb9e0be2b540a8b543b27eebdc34ac4b3a9db047933e574b90b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5f13aaefd25df7431ae242a41d38e6a1765b1f0419c14623a363baedc3d64eb197c30b8f03e91bb7513d6f8c8c674501abf1fb59680ee4385624f0e79d1dd08
|
7
|
+
data.tar.gz: efbfac2fe9675cc8077429c6e6cd71d9a10d6234f8b9dfe904b997be339876b62fe89d140c9521adaec3901731c58e117e1646a7b4b65b711a030fc3563fca8a
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -14,7 +14,7 @@ Android SDK libraries (https://getstream.io/chat/).
|
|
14
14
|
|
15
15
|
stream-chat-ruby supports:
|
16
16
|
|
17
|
-
- Ruby (2.6, 2.5, 2.4)
|
17
|
+
- Ruby (2.6, 2.5, 2.4, 2.3)
|
18
18
|
|
19
19
|
#### Install
|
20
20
|
|
@@ -26,10 +26,6 @@ gem install stream-chat-ruby
|
|
26
26
|
|
27
27
|
[Official API docs](https://getstream.io/chat/docs/)
|
28
28
|
|
29
|
-
### How to build a chat app with Ruby tutorial
|
30
|
-
|
31
|
-
TODO: add a sample Ruby chat program
|
32
|
-
|
33
29
|
### Supported features
|
34
30
|
|
35
31
|
- Chat channels
|
@@ -42,23 +38,124 @@ TODO: add a sample Ruby chat program
|
|
42
38
|
- User search
|
43
39
|
- Channel search
|
44
40
|
|
45
|
-
###
|
41
|
+
### Import
|
42
|
+
|
43
|
+
```ruby
|
44
|
+
require 'stream-chat'
|
45
|
+
```
|
46
|
+
|
47
|
+
### Initialize client
|
48
|
+
|
49
|
+
```ruby
|
50
|
+
client = StreamChat::Client.new(api_key='STREAM_KEY', api_secret='STREAM_SECRET')
|
51
|
+
```
|
52
|
+
|
53
|
+
### Generate a token for client side use
|
54
|
+
|
55
|
+
```ruby
|
56
|
+
client.create_token('bob-1')
|
57
|
+
```
|
58
|
+
|
59
|
+
### Create/Update users
|
46
60
|
|
47
61
|
```ruby
|
48
|
-
|
62
|
+
client.update_user({
|
63
|
+
'id' => 'bob-1',
|
64
|
+
'role' => 'admin',
|
65
|
+
'name' => 'Robert Tables'
|
66
|
+
})
|
67
|
+
|
68
|
+
# batch update is also supported
|
69
|
+
jane = ...
|
70
|
+
june = ...
|
71
|
+
client.update_users([jane, june])
|
72
|
+
```
|
73
|
+
|
74
|
+
### Channel types CRUD
|
49
75
|
|
50
|
-
|
51
|
-
|
76
|
+
```ruby
|
77
|
+
# Create
|
78
|
+
client.create_channel_type({
|
79
|
+
'name' => 'livechat',
|
80
|
+
'automod' => 'disabled',
|
81
|
+
'commands' => ['ban'],
|
82
|
+
'mutes' => true
|
83
|
+
})
|
52
84
|
|
53
|
-
#
|
54
|
-
|
55
|
-
channel.create('chuck')
|
85
|
+
# Update
|
86
|
+
client.update_channel_type('livechat', 'automod' => 'enabled'})
|
56
87
|
|
57
|
-
#
|
58
|
-
|
88
|
+
# Get
|
89
|
+
client.get_channel_type('livechat')
|
59
90
|
|
91
|
+
# List
|
92
|
+
client.list_channel_types
|
93
|
+
|
94
|
+
# Delete
|
95
|
+
client.delete_channel_type('livechat')
|
60
96
|
```
|
61
97
|
|
98
|
+
### Channels
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
# Create a channel with members from the start
|
102
|
+
chan = client.channel("messaging", channel_id: "bob-and-jane", data: {'members'=> ['bob-1', 'jane-77']})
|
103
|
+
chan.create('bob-1')
|
104
|
+
|
105
|
+
# Create a channel and then add members
|
106
|
+
chan = client.channel("messaging", channel_id: "bob-and-jane")
|
107
|
+
chan.create('bob-1')
|
108
|
+
chan.add_members(['bob-1', 'jane-77'])
|
109
|
+
|
110
|
+
# Send messages
|
111
|
+
m1 = chan.send_message({'text' => 'Hi Jane!'}, 'bob-1')
|
112
|
+
m2 = chan.send_message({'text' => 'Hi Bob'}, 'jane-77')
|
113
|
+
|
114
|
+
# Send replies
|
115
|
+
r1 = chan.send_message({'text' => 'And a good day!', 'parent_id' => m1['id']}, 'bob-1')
|
116
|
+
|
117
|
+
# Send reactions
|
118
|
+
chan.send_reaction(m1['id'], {'type' => 'like'}, 'bob-1')
|
119
|
+
|
120
|
+
# Add/remove moderators
|
121
|
+
chan.add_moderators(['jane-77'])
|
122
|
+
chan.demote_moderators(['bob-1'])
|
123
|
+
|
124
|
+
# Add a ban with a timeout
|
125
|
+
chan.ban_user('bob-1', timeout: 30)
|
126
|
+
|
127
|
+
# Remove a ban
|
128
|
+
chan.unban_user('bob-1')
|
129
|
+
|
130
|
+
# Query channel state
|
131
|
+
chan.query({'messages' => { 'limit' => 10, 'id_lte' => m1['id']}})
|
132
|
+
```
|
133
|
+
|
134
|
+
### Messages
|
135
|
+
|
136
|
+
```ruby
|
137
|
+
# Delete a message from any channel by ID
|
138
|
+
deleted_message = client.delete_message(r1['id'])
|
139
|
+
|
140
|
+
```
|
141
|
+
|
142
|
+
### Devices
|
143
|
+
|
144
|
+
```ruby
|
145
|
+
# Add device
|
146
|
+
jane_phone = client.add_device({'id' => 'iOS Device Token', 'push_provider' => push_provider.apn, 'user_id' => 'jane-77'})
|
147
|
+
|
148
|
+
# List devices
|
149
|
+
client.get_devices('jane-77')
|
150
|
+
|
151
|
+
# Remove device
|
152
|
+
client.remove_device(jane_phone['id'], jane_phone['user_id'])
|
153
|
+
```
|
154
|
+
|
155
|
+
### Example Rails application
|
156
|
+
|
157
|
+
See [an example rails application using the Ruby SDK](https://github.com/GetStream/rails-chat-example).
|
158
|
+
|
62
159
|
### Contributing
|
63
160
|
|
64
161
|
First, make sure you can run the test suite. Tests are run via rspec
|
data/lib/stream-chat/channel.rb
CHANGED
@@ -4,7 +4,7 @@ module StreamChat
|
|
4
4
|
attr_reader :id
|
5
5
|
attr_reader :channel_type
|
6
6
|
attr_reader :custom_data
|
7
|
-
|
7
|
+
|
8
8
|
def initialize(client, channel_type, channel_id=nil, custom_data=nil)
|
9
9
|
@channel_type = channel_type
|
10
10
|
@id = channel_id
|
@@ -114,10 +114,10 @@ module StreamChat
|
|
114
114
|
end
|
115
115
|
|
116
116
|
private
|
117
|
-
|
117
|
+
|
118
118
|
def add_user_id(payload, user_id)
|
119
119
|
payload.merge({"user": {"id": user_id}})
|
120
120
|
end
|
121
|
-
|
121
|
+
|
122
122
|
end
|
123
123
|
end
|
data/lib/stream-chat/client.rb
CHANGED
@@ -3,6 +3,7 @@ require 'faraday'
|
|
3
3
|
require 'jwt'
|
4
4
|
require 'stream-chat/channel'
|
5
5
|
require 'stream-chat/errors'
|
6
|
+
require 'stream-chat/version'
|
6
7
|
|
7
8
|
module StreamChat
|
8
9
|
class Client
|
@@ -35,7 +36,7 @@ module StreamChat
|
|
35
36
|
faraday.adapter Faraday.default_adapter
|
36
37
|
end
|
37
38
|
end
|
38
|
-
|
39
|
+
|
39
40
|
def create_token(user_id, exp = nil)
|
40
41
|
payload = {user_id: user_id}
|
41
42
|
if exp != nil
|
@@ -69,7 +70,7 @@ module StreamChat
|
|
69
70
|
end
|
70
71
|
|
71
72
|
def deactivate_user(user_id, **options)
|
72
|
-
post("users/#{user_id}/deactivate", **options)
|
73
|
+
post("users/#{user_id}/deactivate", **options)
|
73
74
|
end
|
74
75
|
|
75
76
|
def export_user(user_id, **options)
|
@@ -151,13 +152,13 @@ module StreamChat
|
|
151
152
|
def get_channel_type(channel_type)
|
152
153
|
get("channeltypes/#{channel_type}")
|
153
154
|
end
|
154
|
-
|
155
|
+
|
155
156
|
def list_channel_types
|
156
157
|
get("channeltypes")
|
157
158
|
end
|
158
159
|
|
159
160
|
def update_channel_type(channel_type, **options)
|
160
|
-
put
|
161
|
+
put("channeltypes/#{channel_type}", **options)
|
161
162
|
end
|
162
163
|
|
163
164
|
def delete_channel_type(channel_type)
|
@@ -171,7 +172,7 @@ module StreamChat
|
|
171
172
|
# @param [hash] data additional channel data
|
172
173
|
#
|
173
174
|
# @return [StreamChat::Channel]
|
174
|
-
#
|
175
|
+
#
|
175
176
|
def channel(channel_type, channel_id: nil, data: nil)
|
176
177
|
StreamChat::Channel.new(self, channel_type, channel_id, data)
|
177
178
|
end
|
@@ -222,7 +223,7 @@ module StreamChat
|
|
222
223
|
def get_default_params
|
223
224
|
{api_key: @api_key}
|
224
225
|
end
|
225
|
-
|
226
|
+
|
226
227
|
def get_user_agent
|
227
228
|
"stream-ruby-client-#{StreamChat::VERSION}"
|
228
229
|
end
|
@@ -245,7 +246,7 @@ module StreamChat
|
|
245
246
|
end
|
246
247
|
return parsed_result
|
247
248
|
end
|
248
|
-
|
249
|
+
|
249
250
|
def make_http_request(method, relative_url, params: nil, data: nil)
|
250
251
|
headers = get_default_headers
|
251
252
|
headers['Authorization'] = @auth_token
|
data/lib/stream-chat/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stream-chat-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mircea Cosbuc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|