pandapush 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed1f11964261dd089725408b9b0cdafbdb102f84
4
- data.tar.gz: e5089f52a913070a54bcc123bac308f6dd0711b0
3
+ metadata.gz: 7eaf114b2127c4e9c12b3957c3fab1587d78b1f4
4
+ data.tar.gz: 76f9166307aa27257b5915c6a8be0152e5267a90
5
5
  SHA512:
6
- metadata.gz: 20348abcdf6f57480d05f9ac8d99648659cd43c876e96f80ba42d2b2d80f2a29c47dec902dac261c4b0eda9147befec26039599537c51713137374117d93fe25
7
- data.tar.gz: 28ae36cb4cba536455417959906e110e323b705e5a6c75e15bcf0da7f188fa1066513364dba4f2335c7d9c1426d1a4333d1a2d6fa961d18ad7128b3c42740ee4
6
+ metadata.gz: 00cadbacf74c653b7d730560c8f6108ba556fc2ca1d451f6fc4f839fd44dd29df6f1e88c759c1b197d0118abfd186d1aaa4e012bf05131cf6f4b41bcf75f0e7c
7
+ data.tar.gz: 6beea7e93ad36f7bcb806dd15c0291066420890ca0e033418ba3709d3a289a024ddfc7d1bb8f8bffb48a630cba72d9b72ad3a35e9bc751ee14db590a3f21162f
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # Pandapush
2
2
 
3
- [https://www.github.com/neilgupta/pandapush](https://www.github.com/neilgupta/pandapush)
4
-
5
3
  [![Gem Version](https://badge.fury.io/rb/pandapush.png)](http://badge.fury.io/rb/pandapush)
6
4
 
7
5
  Pandapush is an event push system similar to Pusher for internal Instructure use.
@@ -76,14 +74,15 @@ Pandapush.publish(channel: 'messages', message: {user: {id: 1, name: 'Neil Gupta
76
74
 
77
75
  Note: `channel` is a string and can be any valid uri, such as `'users/1'`. Pandapush will handle generating the URL with your app id and channel type.
78
76
 
79
- ### Pandapush.generate_token(channel:, channel_type: 'private', pub: true, sub: true)
77
+ ### Pandapush.generate_token(channel:, channel_type: 'private', pub: true, sub: true, presence: nil)
80
78
 
81
79
  Generates a JWT token for client authentication.
82
80
 
83
81
  * `channel` - The channel name the token works for (required)
84
- * `channel_type` - 'public' or 'private'. Defaults to private
82
+ * `channel_type` - 'public', 'private', or 'presence'. Defaults to private
85
83
  * `pub` - true if this token allows publishing. Defaults to true
86
84
  * `sub` - true if this token allows subscribing. Note that sub on a public channel is redundant. Defaults to true
85
+ * `presence` - A hash used to identify a user when subscribing to a presence channel. Must have at least an `id` key.
87
86
 
88
87
  Example:
89
88
 
@@ -105,14 +104,6 @@ Getter and setter for your app secret.
105
104
 
106
105
  ### Pandapush.url
107
106
 
108
- Getter and setter to override the default url we use for Pandapush.
107
+ Getter and setter to override the default url we use for Pandapush. Useful for running dockerized pandapush.
109
108
 
110
109
  All methods can also be accessed from `Pandapush::Client.new`.
111
-
112
- ## Author
113
-
114
- Neil Gupta [http://metamorphium.com](http://metamorphium.com)
115
-
116
- ## License
117
-
118
- The MIT License (MIT) Copyright (c) 2015 Neil Gupta. See [MIT-LICENSE](https://raw.github.com/neilgupta/pandapush/master/MIT-LICENSE)
@@ -20,7 +20,7 @@ module Pandapush
20
20
  def publish(channel:, message:, channel_type: 'private')
21
21
  raise ConfigurationError, 'Missing client configuration: please check that key, secret and app_id are configured.' unless configured?
22
22
 
23
- RestClient.post channel_uri(channel, channel_type, include_base_url: true), message.to_json,
23
+ RestClient.post channel_uri(channel, channel_type, include_base_url: true), message.to_json,
24
24
  {:content_type => :json, :Authorization => "Token #{generate_token(channel: channel, channel_type: channel_type)}"}
25
25
  end
26
26
 
@@ -32,15 +32,19 @@ module Pandapush
32
32
  #
33
33
  # @example
34
34
  # client.generate_token(channel: 'messages', sub: false)
35
- def generate_token(channel:, channel_type: 'private', pub: true, sub: true)
35
+ def generate_token(channel:, channel_type: 'private', pub: true, sub: true, presence: nil)
36
36
  raise ConfigurationError, 'Missing client configuration: please check that key, secret and app_id are configured.' unless configured?
37
37
 
38
- JWT.encode({
38
+ payload = {
39
39
  keyId: key,
40
40
  channel: channel_uri(channel, channel_type),
41
41
  pub: pub,
42
42
  sub: sub
43
- }, secret)
43
+ }
44
+
45
+ payload[:presence] = presence if presence
46
+
47
+ JWT.encode(payload, secret)
44
48
  end
45
49
 
46
50
  private
@@ -1,3 +1,3 @@
1
1
  module Pandapush
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pandapush
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neil Gupta
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-04-21 00:00:00.000000000 Z
11
+ date: 2017-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -101,15 +101,13 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
- - MIT-LICENSE
105
104
  - README.md
106
105
  - Rakefile
107
106
  - lib/pandapush.rb
108
107
  - lib/pandapush/client.rb
109
108
  - lib/pandapush/version.rb
110
- homepage: https://github.com/neilgupta/pandapush
111
- licenses:
112
- - MIT
109
+ homepage: https://instructure.com
110
+ licenses: []
113
111
  metadata: {}
114
112
  post_install_message:
115
113
  rdoc_options: []
@@ -127,9 +125,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
125
  version: '0'
128
126
  requirements: []
129
127
  rubyforge_project:
130
- rubygems_version: 2.4.6
128
+ rubygems_version: 2.5.1
131
129
  signing_key:
132
130
  specification_version: 4
133
131
  summary: Ruby client for pushing to Pandapush
134
132
  test_files: []
135
- has_rdoc:
data/MIT-LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright 2015 Neil Gupta
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.