lib/zero_push.rb in zero_push-1.2.0 vs lib/zero_push.rb in zero_push-1.3.0
- old
+ new
@@ -1,3 +1,61 @@
-require 'zero_push/version'
-require 'zero_push/client'
require 'faraday'
+require 'zero_push/client'
+require 'zero_push/version'
+
+module ZeroPush
+ URL = "https://api.zeropush.com"
+
+ class << self
+ attr_accessor :auth_token
+
+ # verifies credentials
+ #
+ # @return [Boolean]
+ def verify_credentials
+ response = client.get('/verify_credentials')
+ response.status == 200
+ end
+
+ # Sends a notification to the list of devices
+ #
+ # @param params [Hash]
+ # @return response
+ def notify(params)
+ client.post('/notify', params)
+ end
+
+ # Registers a device token with the ZeroPush backend
+ #
+ # @param device_token
+ # @return response
+ def register(device_token)
+ client.post('/register', device_token: device_token)
+ end
+
+ # Sets the badge for a particular device
+ #
+ # @param device_token
+ # @param badge
+ # @return response
+ def set_badge(device_token, badge)
+ client.post('/set_badge', device_token: device_token, badge: badge)
+ end
+
+ # Returns a list of tokens that have been marked inactive
+ #
+ # @returns array
+ def inactive_tokens
+ client.get('/inactive_tokens')
+ end
+
+ # the HTTP client configured for API requests
+ #
+ def client
+ Faraday.new(url: URL) do |c|
+ c.token_auth self.auth_token
+ c.request :url_encoded # form-encode POST params
+ c.adapter Faraday.default_adapter # Net::HTTP
+ end
+ end
+ end
+end