2020)
2121
2222from loguru import logger
23+ import requests
2324
2425from datacustomcode .token_provider import (
2526 CredentialsTokenProvider ,
@@ -49,7 +50,7 @@ def __init__(
4950 self .token_response = None
5051 super ().__init__ (** kwargs )
5152
52- def get_headers (self ):
53+ def _get_headers (self ):
5354 if self .token_response is None :
5455 self .token_response = self ._token_provider .get_token ()
5556
@@ -60,6 +61,23 @@ def get_headers(self):
6061 "x-client-feature-id" : "ai-platform-models-connected-app" ,
6162 }
6263
64+ def make_post_request (self , url , payload ):
65+ try :
66+ response = requests .post (
67+ url , json = payload , headers = self ._get_headers (), timeout = 180
68+ )
69+ if not response .ok :
70+ error_msg = (
71+ f"Request to { url } failed. "
72+ f"Reason: { response .status_code } { response .reason } - "
73+ f"Response body: { response .text } "
74+ )
75+ logger .error (error_msg )
76+ return response
77+ except requests .exceptions .RequestException as e :
78+ logger .error (f"Request to { url } failed: { e } " )
79+ raise RuntimeError (f"Request to { url } failed { e } " ) from e
80+
6381 def parse_response (self , response ):
6482 response_data : Dict [str , Any ] = {}
6583 if response .content :
0 commit comments