Class: SocketLabs::InjectionApi::SocketLabsClient
- Inherits:
-
Object
- Object
- SocketLabs::InjectionApi::SocketLabsClient
- Defined in:
- lib/socketlabs/injectionapi/socketlabsclient.rb
Instance Attribute Summary collapse
-
#number_of_retries ⇒ Object
Returns the value of attribute number_of_retries.
-
#request_json ⇒ Object
readonly
Returns the value of attribute request_json.
-
#request_timeout ⇒ Object
The SocketLabs Injection API Request Timeout.
-
#response_json ⇒ Object
readonly
Returns the value of attribute response_json.
Instance Method Summary collapse
- #http_method ⇒ Object
-
#initialize(server_id, api_key, proxy = {}) ⇒ SocketLabsClient
constructor
A new instance of SocketLabsClient.
-
#send(message) ⇒ SendResponse
Sends a Message message and returns the response from the Injection API.
-
#send_basic_message(message) ⇒ SendResponse
Sends a BasicMessage message and returns the response from the Injection API.
-
#send_bulk_message(message) ⇒ SendResponse
Sends a BulkMessage message and returns the response from the Injection API.
- #to_s ⇒ Object
-
#validate_message(message) ⇒ SendResult
Validate a BulkMessage message.
Constructor Details
#initialize(server_id, api_key, proxy = {}) ⇒ SocketLabsClient
Returns a new instance of SocketLabsClient.
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 23 def initialize ( server_id, api_key, proxy= {} ) @server_id = server_id @api_key = api_key @proxy = proxy @endpoint = "https://inject.socketlabs.com/api/v1/email" @request_timeout = 120 @number_of_retries = 0 end |
Instance Attribute Details
#number_of_retries ⇒ Object
Returns the value of attribute number_of_retries.
72 73 74 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 72 def number_of_retries @number_of_retries end |
#request_json ⇒ Object (readonly)
Returns the value of attribute request_json.
20 21 22 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 20 def request_json @request_json end |
#request_timeout ⇒ Object
The SocketLabs Injection API Request Timeout
71 72 73 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 71 def request_timeout @request_timeout end |
#response_json ⇒ Object (readonly)
Returns the value of attribute response_json.
21 22 23 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 21 def response_json @response_json end |
Instance Method Details
#http_method ⇒ Object
74 75 76 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 74 def http_method HttpRequest.http_request_method[:Post] end |
#send(message) ⇒ SendResponse
Sends a Message message and returns the response from the Injection API.
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 39 def send() response = SendResponse.new if .instance_of? BasicMessage response = () end if .instance_of? BulkMessage response = () end response end |
#send_basic_message(message) ⇒ SendResponse
Sends a BasicMessage message and returns the response from the Injection API.
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 81 def () resp = () if resp.result != SendResult.enum["Success"] resp end req_factory = InjectionRequestFactory.new(@server_id, @api_key) request = req_factory.generate_request() # debug request_hash = request.to_hash debug_json = request_hash.to_json @request_json = debug_json apiKeyParser = ApiKeyParser.new() parseResult = apiKeyParser.parse(@api_key); httpArguments = { :http_endpoint => @endpoint, :proxy => @proxy, :timeout => @request_timeout, :authorization => '' } if parseResult == ApiKeyParseResult.enum["Success"] httpArguments[:authorization] = @api_key request.api_key = '' end http_request = HttpRequest.new(http_method, httpArguments) retry_handler = RetryHandler.new(http_request, @endpoint, RetrySettings.new(@number_of_retries)) response = retry_handler.send(request) parser = InjectionResponseParser.new result = parser.parse(response) @response_json = result.to_json end |
#send_bulk_message(message) ⇒ SendResponse
Sends a BulkMessage message and returns the response from the Injection API.
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 125 def () resp = () if resp.result != SendResult.enum["Success"] resp end req_factory = InjectionRequestFactory.new(@server_id, @api_key) request = req_factory.generate_request() # debug request_hash = request.to_hash debug_json = request_hash.to_json @request_json = debug_json apiKeyParser = ApiKeyParser.new() parseResult = apiKeyParser.parse(@api_key); httpArguments = { :http_endpoint => @endpoint, :proxy => @proxy, :timeout => @request_timeout, :authorization => '' } if parseResult == ApiKeyParseResult.enum["Success"] httpArguments[:authorization] = @api_key request.api_key = '' end http_request = HttpRequest.new(http_method, { :http_endpoint => @endpoint, :proxy => @proxy, :timeout => @request_timeout }) retry_handler = RetryHandler.new(http_request, @endpoint, RetrySettings.new(@number_of_retries)) response = retry_handler.send(request) parser = InjectionResponseParser.new result = parser.parse(response) @response_json = result.to_json end |
#to_s ⇒ Object
55 56 57 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 55 def to_s "#{@endpoint}::#{@server_id}:#{@api_key}" end |
#validate_message(message) ⇒ SendResult
Validate a BulkMessage message
168 169 170 171 172 173 174 175 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 168 def () validator = SendValidator.new resp = validator.validate_credentials(@server_id, @api_key) if resp.result != SendResult.enum["Success"] resp end validator.() end |