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 |
# 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 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 parser.parse(response) @response_json = parser.to_json end |
#send_bulk_message(message) ⇒ SendResponse
Sends a BulkMessage message and returns the response from the Injection API.
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 110 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 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 parser.parse(response) @response_json = parser.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
139 140 141 142 143 144 145 146 |
# File 'lib/socketlabs/injectionapi/socketlabsclient.rb', line 139 def () validator = SendValidator.new resp = validator.validate_credentials(@server_id, @api_key) if resp.result != SendResult.enum["Success"] resp end validator.() end |