stream-ruby 2.2.5 → 2.3
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/README.md +3 -3
- data/lib/stream/batch.rb +6 -2
- data/lib/stream/client.rb +2 -0
- data/lib/stream/feed.rb +47 -11
- data/lib/stream/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 56cc18197a65ac7e4850c3b26d4074ab05a388e0
|
4
|
+
data.tar.gz: 79bcf52439076f18713845f218a620b5193acf77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9db451f0039402f2b4f9bd2cab4d84e37cf826051b89a6b98de0728f1f8966cee48a180305a0ce3768e0ed8ffd23c80effb20e6aa2d3fb685c41a97140c12619
|
7
|
+
data.tar.gz: fb99db9538f8a0445aee5fbcc53c5fda9936649644273a87f02aab397276ea78010aeafa84f1cdd1724ffcabbb5ca35df3ca849edb4135ad140a8e8427ce0376
|
data/README.md
CHANGED
@@ -17,7 +17,7 @@ gem install "stream-ruby"
|
|
17
17
|
```ruby
|
18
18
|
# Instantiate a new client to connect to us east API endpoint
|
19
19
|
require 'stream'
|
20
|
-
client = Stream::Client.new('YOUR_API_KEY', 'API_KEY_SECRET',
|
20
|
+
client = Stream::Client.new('YOUR_API_KEY', 'API_KEY_SECRET', :location => 'us-east')
|
21
21
|
# Find your API keys here https://getstream.io/dashboard/
|
22
22
|
|
23
23
|
# Instantiate a feed object
|
@@ -79,10 +79,10 @@ user_feed_1.add_activity(data)
|
|
79
79
|
user_feed_1.delete
|
80
80
|
|
81
81
|
# Generating tokens for client side usage
|
82
|
-
token = user_feed_1.
|
82
|
+
token = user_feed_1.readonly_token
|
83
83
|
|
84
84
|
# Javascript client side feed initialization
|
85
|
-
|
85
|
+
user1 = client.feed('user', '1', '{{ token }}');
|
86
86
|
|
87
87
|
# Retrieve first 10 followers of a feed
|
88
88
|
user_feed_1.followers(0, 10)
|
data/lib/stream/batch.rb
CHANGED
@@ -16,8 +16,12 @@ module Stream
|
|
16
16
|
# ]
|
17
17
|
# @client.follow_many(follows)
|
18
18
|
#
|
19
|
-
def follow_many(follows)
|
20
|
-
|
19
|
+
def follow_many(follows, activity_copy_limit=nil)
|
20
|
+
query_params = {}
|
21
|
+
unless activity_copy_limit.nil?
|
22
|
+
query_params['activity_copy_limit'] = activity_copy_limit
|
23
|
+
end
|
24
|
+
make_signed_request(:post, "/follow_many/", query_params, follows)
|
21
25
|
end
|
22
26
|
|
23
27
|
#
|
data/lib/stream/client.rb
CHANGED
@@ -82,6 +82,8 @@ module Stream
|
|
82
82
|
|
83
83
|
def make_request(method, relative_url, signature, params = {}, data = {}, headers = {})
|
84
84
|
headers["Authorization"] = signature
|
85
|
+
headers["stream-auth-type"] = 'jwt'
|
86
|
+
|
85
87
|
get_http_client.make_http_request(method, relative_url, make_query_params(params), data, headers)
|
86
88
|
end
|
87
89
|
end
|
data/lib/stream/feed.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "stream/signer"
|
2
|
+
require "jwt"
|
2
3
|
|
3
4
|
module Stream
|
4
5
|
class Feed
|
@@ -6,7 +7,6 @@ module Stream
|
|
6
7
|
attr_reader :slug
|
7
8
|
attr_reader :user_id
|
8
9
|
attr_reader :token
|
9
|
-
attr_reader :signature
|
10
10
|
|
11
11
|
def initialize(client, feed_slug, user_id, token)
|
12
12
|
unless valid_feed_slug feed_slug
|
@@ -21,9 +21,13 @@ module Stream
|
|
21
21
|
@client = client
|
22
22
|
@user_id = user_id
|
23
23
|
@slug = feed_slug
|
24
|
+
@feed_name = "#{feed_slug}#{user_id}"
|
24
25
|
@feed_url = "#{feed_slug}/#{user_id}"
|
25
26
|
@token = token
|
26
|
-
|
27
|
+
end
|
28
|
+
|
29
|
+
def readonly_token
|
30
|
+
create_jwt_token("*", "read")
|
27
31
|
end
|
28
32
|
|
29
33
|
def valid_feed_slug(feed_slug)
|
@@ -42,7 +46,9 @@ module Stream
|
|
42
46
|
if params[:mark_seen] && params[:mark_seen].is_a?(Array)
|
43
47
|
params[:mark_seen] = params[:mark_seen].join(",")
|
44
48
|
end
|
45
|
-
|
49
|
+
auth_token = create_jwt_token("feed", "read")
|
50
|
+
|
51
|
+
@client.make_request(:get, uri, auth_token, params)
|
46
52
|
end
|
47
53
|
|
48
54
|
def sign_to_field(to)
|
@@ -56,7 +62,9 @@ module Stream
|
|
56
62
|
def add_activity(activity_data)
|
57
63
|
uri = "/feed/#{@feed_url}/"
|
58
64
|
activity_data[:to] &&= sign_to_field(activity_data[:to])
|
59
|
-
|
65
|
+
auth_token = create_jwt_token("feed", "write")
|
66
|
+
|
67
|
+
@client.make_request(:post, uri, auth_token, {}, activity_data)
|
60
68
|
end
|
61
69
|
|
62
70
|
def add_activities(activities)
|
@@ -65,7 +73,9 @@ module Stream
|
|
65
73
|
activity[:to] &&= sign_to_field(activity[:to])
|
66
74
|
end
|
67
75
|
data = { :activities => activities }
|
68
|
-
|
76
|
+
auth_token = create_jwt_token("feed", "write")
|
77
|
+
|
78
|
+
@client.make_request(:post, uri, auth_token, {}, data)
|
69
79
|
end
|
70
80
|
|
71
81
|
def remove(activity_id, foreign_id = false)
|
@@ -76,12 +86,16 @@ module Stream
|
|
76
86
|
uri = "/feed/#{@feed_url}/#{activity_id}/"
|
77
87
|
params = {}
|
78
88
|
params = { "foreign_id" => 1 } if foreign_id
|
79
|
-
|
89
|
+
auth_token = create_jwt_token("feed", "delete")
|
90
|
+
|
91
|
+
@client.make_request(:delete, uri, auth_token, {}, params)
|
80
92
|
end
|
81
93
|
|
82
94
|
def delete
|
83
95
|
uri = "/feed/#{@feed_url}/"
|
84
|
-
|
96
|
+
auth_token = create_jwt_token("feed", "delete")
|
97
|
+
|
98
|
+
@client.make_request(:delete, uri, auth_token)
|
85
99
|
end
|
86
100
|
|
87
101
|
def follow(target_feed_slug, target_user_id)
|
@@ -90,7 +104,9 @@ module Stream
|
|
90
104
|
:target => "#{target_feed_slug}:#{target_user_id}",
|
91
105
|
:target_token => @client.feed(target_feed_slug, target_user_id).token
|
92
106
|
}
|
93
|
-
|
107
|
+
auth_token = create_jwt_token("follower", "write")
|
108
|
+
|
109
|
+
@client.make_request(:post, uri, auth_token, {}, follow_data)
|
94
110
|
end
|
95
111
|
|
96
112
|
def followers(offset = 0, limit = 25)
|
@@ -99,7 +115,9 @@ module Stream
|
|
99
115
|
"offset" => offset,
|
100
116
|
"limit" => limit
|
101
117
|
}
|
102
|
-
|
118
|
+
auth_token = create_jwt_token("follower", "read")
|
119
|
+
|
120
|
+
@client.make_request(:get, uri, auth_token, {}, params)
|
103
121
|
end
|
104
122
|
|
105
123
|
def following(offset = 0, limit = 25, filter = [])
|
@@ -109,12 +127,30 @@ module Stream
|
|
109
127
|
"limit" => limit,
|
110
128
|
"filter" => filter.join(",")
|
111
129
|
}
|
112
|
-
|
130
|
+
auth_token = create_jwt_token("follower", "read")
|
131
|
+
|
132
|
+
@client.make_request(:get, uri, auth_token, {}, params)
|
113
133
|
end
|
114
134
|
|
115
135
|
def unfollow(target_feed_slug, target_user_id)
|
116
136
|
uri = "/feed/#{@feed_url}/follows/#{target_feed_slug}:#{target_user_id}/"
|
117
|
-
|
137
|
+
auth_token = create_jwt_token("follower", "delete")
|
138
|
+
|
139
|
+
@client.make_request(:delete, uri, auth_token, {auth_token: auth_token})
|
140
|
+
end
|
141
|
+
|
142
|
+
private
|
143
|
+
|
144
|
+
def create_jwt_token(resource, action, feed_id=nil, user_id=nil)
|
145
|
+
payload = {
|
146
|
+
"resource" => resource,
|
147
|
+
"action" => action,
|
148
|
+
"feed_id" => @feed_name
|
149
|
+
}
|
150
|
+
payload["feed_id"] = feed_id if feed_id
|
151
|
+
payload["user_id"] = user_id if user_id
|
152
|
+
|
153
|
+
return JWT.encode(payload, @client.api_secret, 'HS256')
|
118
154
|
end
|
119
155
|
end
|
120
156
|
end
|
data/lib/stream/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stream-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: '2.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tommaso Barbugli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-03-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: jwt
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.5.2
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.5.2
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rake
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|