22from pydantic import BaseModel , HttpUrl , Field
33
44from conSys .endpoints .endpoints import Endpoint
5- from conSys .request_bodies import RequestBody
5+ from conSys .request_wrappers import post_request , put_request , get_request , delete_request
66
77
88class ConnectedSystemAPIRequest (BaseModel ):
99 url : HttpUrl = Field (None )
10- body : RequestBody = Field (default_factory = RequestBody )
10+ body : dict = Field (None )
1111 params : dict = Field (None )
1212 request_method : str = Field ('GET' )
1313 headers : dict = Field (None )
14+ auth : tuple = Field (None )
1415
1516 def make_request (self ):
1617 match self .request_method :
1718 case 'GET' :
18- return requests . get (self .url , params = self .body , headers = self .headers )
19+ return get_request (self .url , self .params , self .headers , self . auth )
1920 case 'POST' :
20- return self . post_request ()
21+ return post_request (self . url , self . body , self . headers , self . auth )
2122 case 'PUT' :
22- return self . put_request ()
23+ return put_request (self . url , self . body , self . headers , self . auth )
2324 case 'DELETE' :
24- return self . delete_request ()
25+ return delete_request (self . url , self . params , self . headers , self . auth )
2526 case _:
2627 raise ValueError ('Invalid request method' )
2728
@@ -31,8 +32,6 @@ class ConnectedSystemsRequestBuilder(BaseModel):
3132 base_url : HttpUrl = None
3233 endpoint : Endpoint = Field (default_factory = Endpoint )
3334
34-
35-
3635 def with_api_url (self , url : HttpUrl ):
3736 self .api_request .url = url
3837 return self
@@ -75,7 +74,7 @@ def with_secondary_resource_id(self, resource_id: str):
7574 self .endpoint .secondary_resource_id = resource_id
7675 return self
7776
78- def with_request_body (self , request_body : RequestBody ):
77+ def with_request_body (self , request_body : str ):
7978 self .api_request .body = request_body
8079 return self
8180
@@ -88,6 +87,10 @@ def with_headers(self, headers: dict = None):
8887 self .api_request .headers = headers
8988 return self
9089
90+ def with_auth (self , uname : str , pword : str ):
91+ self .api_request .auth = (uname , pword )
92+ return self
93+
9194 def build (self ):
9295 # convert endpoint to HttpUrl
9396 return self .api_request
0 commit comments