1313from .message .bulkmessage import BulkMessage
1414from .proxy import Proxy
1515from .sendresult import SendResult
16+ from .core .apikeyparser import ApiKeyParser
17+ from .core .apikeyparseresult import ApiKeyParseResult
1618
1719
1820class SocketLabsClient (object ):
@@ -81,13 +83,15 @@ def number_of_retries(self):
8183 def number_of_retries (self , retries : int ):
8284 self ._number_of_retries = retries
8385
84- def __build_http_request (self ):
86+ def __build_http_request (self , authentication : str ):
8587 """
8688 Build the HttpRequest. Will add the proxy, if set
89+ :param authentication: the API key to include as a bearer token
90+ :type authentication: object
8791 :return the HttpRequest object to use for the request
8892 :rtype HttpRequest
8993 """
90- req = HttpRequest (HttpRequest .HttpRequestMethod .POST , self .__endpoint , self .request_timeout )
94+ req = HttpRequest (HttpRequest .HttpRequestMethod .POST , self .__endpoint , self .request_timeout , authentication )
9195 if self ._http_proxy is not None :
9296 req .proxy = self ._http_proxy
9397 return req
@@ -119,10 +123,19 @@ def __send_basic_message(self, message: BasicMessage):
119123 if not resp .result == SendResult .Success :
120124 return resp
121125
126+ api_key_parser = ApiKeyParser ()
127+ parse_result = api_key_parser .parse (self ._api_key )
128+
122129 req_factory = InjectionRequestFactory (self ._server_id , self ._api_key )
130+ http_request = self .__build_http_request ("" )
131+
132+ if parse_result == ApiKeyParseResult .Success :
133+ req_factory = InjectionRequestFactory (self ._server_id , "" )
134+ http_request = self .__build_http_request (self ._api_key )
135+
123136 body = req_factory .generate_request (message )
124137
125- retry_handler = RetryHandler (self . __build_http_request () , RetrySettings (self .number_of_retries ))
138+ retry_handler = RetryHandler (http_request , RetrySettings (self .number_of_retries ))
126139 response = retry_handler .send (body )
127140
128141 data = response .read ().decode ("utf-8" )
@@ -143,10 +156,19 @@ def __send_bulk_message(self, message: BulkMessage):
143156 if not resp .result == SendResult .Success :
144157 return resp
145158
159+ api_key_parser = ApiKeyParser ()
160+ parse_result = api_key_parser .parse (self ._api_key )
161+
146162 req_factory = InjectionRequestFactory (self ._server_id , self ._api_key )
163+ http_request = self .__build_http_request ("" )
164+
165+ if parse_result == ApiKeyParseResult .Success :
166+ req_factory = InjectionRequestFactory (self ._server_id , "" )
167+ http_request = self .__build_http_request (self ._api_key )
168+
147169 body = req_factory .generate_request (message )
148170
149- retry_handler = RetryHandler (self . __build_http_request () , RetrySettings (self .number_of_retries ))
171+ retry_handler = RetryHandler (http_request , RetrySettings (self .number_of_retries ))
150172 response = retry_handler .send (body )
151173
152174 data = response .read ().decode ("utf-8" )
0 commit comments