spire_io 1.2 → 1.2.1

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.
@@ -188,6 +188,16 @@ class Spire
188
188
  }
189
189
  end
190
190
 
191
+ define_request(:reset_member_password) do |email|
192
+ url = @resources["members"]["url"]
193
+ {
194
+ :method => :post,
195
+ :url => url,
196
+ :query => { :email => email },
197
+ :body => ""
198
+ }
199
+ end
200
+
191
201
  #Authenticates with the application using basic auth
192
202
  def authenticate(login, password)
193
203
  response = request(:authenticate, {:login => login, :password => password})
@@ -206,6 +216,18 @@ class Spire
206
216
  API::Member.new(@spire, response.data)
207
217
  end
208
218
 
219
+ #If you do not give a new password, you will get back an authenticated member but have to change
220
+ #the password at a later time (using the returned capability)
221
+ def reset_password(reset_key, new_password = nil)
222
+ hsh = {:reset_key => reset_key}
223
+ hsh[:password] = new_password if new_password
224
+ response = request(:authenticate_with_post, hsh)
225
+ unless response.status == 201
226
+ raise "Error reseting password for application #{self.name}: (#{response.status}) #{response.body}"
227
+ end
228
+ API::Member.new(@spire, response.data)
229
+ end
230
+
209
231
  def create_member(member_data)
210
232
  response = request(:create_member, member_data)
211
233
  unless response.status == 201
@@ -214,6 +236,15 @@ class Spire
214
236
  API::Member.new(@spire, response.data)
215
237
  end
216
238
 
239
+ #Resets a members password based on email
240
+ def request_member_password_reset(email)
241
+ response = request(:reset_member_password, email)
242
+ unless response.status == 202
243
+ raise "Error reseting password for email #{email} in app #{self.name}: (#{response.status}) #{response.body}"
244
+ end
245
+ true
246
+ end
247
+
217
248
  def members
218
249
  @members || members!
219
250
  end
@@ -3,7 +3,7 @@ class Spire
3
3
 
4
4
  class Subscription < Resource
5
5
 
6
- attr_reader :last
6
+ attr_accessor :last
7
7
  def resource_name
8
8
  "subscription"
9
9
  end
@@ -14,9 +14,12 @@ class Spire
14
14
  :url => @url,
15
15
  :query => {
16
16
  "timeout" => options[:timeout],
17
+ "limit" => options[:limit],
18
+ "min_timestamp" => options[:min_timestamp],
19
+ "max_timestamp" => options[:max_timestamp],
20
+ "delay" => options[:delay],
17
21
  "last" => options[:last],
18
- "order-by" => options[:order_by],
19
- "delay" => options[:delay]
22
+ "order-by" => options[:order_by]
20
23
  },
21
24
  :headers => {
22
25
  "Authorization" => "Capability #{@capabilities["events"]}",
@@ -50,10 +53,6 @@ class Spire
50
53
  end
51
54
 
52
55
  def retrieve_events(options={})
53
- options[:last] ||= "0"
54
- options[:delay] ||= 0
55
- options[:order_by] ||= "desc"
56
-
57
56
  response = request(:events, options)
58
57
  unless response.status == 200
59
58
  raise "Error retrieving messages from #{self.class.name}: (#{response.status}) #{response.body}"
@@ -91,7 +90,7 @@ class Spire
91
90
 
92
91
  def long_poll(options={})
93
92
  options[:timeout] ||= 30
94
- options[:last] = @last
93
+ options[:last] = @last if @last
95
94
  retrieve_events(options)
96
95
  end
97
96
 
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spire_io
3
3
  version: !ruby/object:Gem::Version
4
- hash: 11
4
+ hash: 29
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 2
9
- version: "1.2"
9
+ - 1
10
+ version: 1.2.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - Dan Yoder
@@ -16,7 +17,7 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2012-05-07 00:00:00 -07:00
20
+ date: 2012-05-22 00:00:00 -07:00
20
21
  default_executable:
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency