Class: PushRadar::Client
- Inherits:
-
Object
- Object
- PushRadar::Client
- Defined in:
- lib/pushradar/client.rb
Instance Method Summary collapse
- #auth(channel_name, socket_id) ⇒ Object
- #broadcast(channel_name, data) ⇒ Object
-
#initialize(secret_key) ⇒ Client
constructor
A new instance of Client.
- #register_client_data(socket_id, client_data) ⇒ Object
Constructor Details
#initialize(secret_key) ⇒ Client
Returns a new instance of Client.
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/pushradar/client.rb', line 7 def initialize(secret_key) unless secret_key.is_a?(String) raise PushRadar::Error, 'Secret key must be a string.' end unless secret_key.start_with?('sk_') raise PushRadar::Error, 'Please provide your PushRadar secret key. You can find it on the API page of your dashboard.' end @secret_key = secret_key @api_endpoint = 'https://api.pushradar.com/v3' end |
Instance Method Details
#auth(channel_name, socket_id) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/pushradar/client.rb', line 47 def auth(channel_name, socket_id) unless channel_name.is_a?(String) raise PushRadar::Error, 'Channel name must be a string.' end if channel_name.nil? || channel_name.strip.empty? raise PushRadar::Error, 'Channel name empty. Please provide a channel name.' end unless channel_name.start_with?('private-') || channel_name.start_with?('presence-') raise PushRadar::Error, 'Channel authentication can only be used with private and presence channels.' end unless socket_id.is_a?(String) raise PushRadar::Error, 'Socket ID must be a string.' end if socket_id.nil? || socket_id.strip.empty? raise PushRadar::Error, 'Socket ID empty. Please pass through a socket ID.' end response = do_http_request('GET', @api_endpoint + "/channels/auth?channel=" + CGI.escape(channel_name) + "&socketID=" + CGI.escape(socket_id), {}) if response[:status] === 200 JSON(response[:body])['token'] else raise PushRadar::Error, 'There was a problem receiving a channel authentication token. Server returned: ' + response[:body] end end |
#broadcast(channel_name, data) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/pushradar/client.rb', line 28 def broadcast(channel_name, data) unless channel_name.is_a?(String) raise PushRadar::Error, 'Channel name must be a string.' end if channel_name.nil? || channel_name.strip.empty? raise PushRadar::Error, 'Channel name empty. Please provide a channel name.' end validate_channel_name(channel_name) response = do_http_request('POST', @api_endpoint + "/broadcasts", { channel: channel_name, data: data.to_json }) if response[:status] === 200 true else raise PushRadar::Error, 'An error occurred while calling the API. Server returned: ' + response[:body] end end |
#register_client_data(socket_id, client_data) ⇒ Object
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/pushradar/client.rb', line 76 def register_client_data(socket_id, client_data) unless socket_id.is_a?(String) raise PushRadar::Error, 'Socket ID must be a string.' end if socket_id.nil? || socket_id.strip.empty? raise PushRadar::Error, 'Socket ID empty. Please pass through a socket ID.' end response = do_http_request('POST', @api_endpoint + "/client-data", { socketID: socket_id, clientData: client_data.to_json }) if response[:status] === 200 true else raise PushRadar::Error, 'An error occurred while calling the API. Server returned: ' + response[:body] end end |