Skip to content

Commit 52b3bdc

Browse files
chore: generated with latest sdk-generation
1 parent cef013f commit 52b3bdc

File tree

3 files changed

+36
-18
lines changed

3 files changed

+36
-18
lines changed

src/sdk/models/shared/api.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from dataclasses import dataclass, field
22
from datetime import datetime
3-
from marshmallow import fields
3+
from typing import List, Optional
4+
45
import dateutil.parser
5-
from typing import List,Optional
66
from dataclasses_json import dataclass_json
7+
from marshmallow import fields
8+
79

810
@dataclass_json
911
@dataclass
@@ -16,4 +18,3 @@ class API:
1618
updated_at: datetime = field(default=None, metadata={'dataclasses_json': { 'field_name': 'updated_at', 'encoder': datetime.isoformat, 'decoder': dateutil.parser.isoparse, 'mm_field': fields.DateTime(format='iso') }})
1719
version_id: str = field(default=None, metadata={'dataclasses_json': { 'field_name': 'version_id' }})
1820
workspace_id: str = field(default=None, metadata={'dataclasses_json': { 'field_name': 'workspace_id' }})
19-

src/sdk/sdk.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,9 @@
1010
SERVER_URL = "http://api.prod.speakeasyapi.dev"
1111

1212
class SDK:
13-
client: requests.Session = requests.Session()
14-
15-
13+
client = requests.Session()
1614
def config_security(self, security: shared.Security):
17-
utils.configure_security_client(self.client, security)
15+
self.client = utils.configure_security_client(security)
1816

1917

2018
def delete_api_endpoint_v1(self, request: operations.DeleteAPIEndpointV1Request) -> operations.DeleteAPIEndpointV1Response:

src/sdk/utils/utils.py

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,20 @@
77
from dataclasses_json import DataClassJsonMixin
88

99

10-
def configure_security_client(client: requests.Session, security: dataclass):
10+
class SecurityClient:
11+
client: requests.Session = requests.Session()
12+
query_params: dict[str, str] = {}
13+
14+
def request(self, method, url, **kwargs):
15+
params = kwargs.get('params', {})
16+
kwargs["params"] = self.query_params | params
17+
18+
return self.client.request(method, url, **kwargs)
19+
20+
21+
def configure_security_client(security: dataclass):
22+
client = SecurityClient()
23+
1124
sec_fields: Tuple[Field, ...] = fields(security)
1225
for sec_field in sec_fields:
1326
value = getattr(security, sec_field.name)
@@ -23,8 +36,10 @@ def configure_security_client(client: requests.Session, security: dataclass):
2336
elif metadata.get('scheme'):
2437
_parse_security_scheme(client, metadata, value)
2538

39+
return client
40+
2641

27-
def _parse_security_option(client: requests.Session, option: dataclass):
42+
def _parse_security_option(client: SecurityClient, option: dataclass):
2843
opt_fields: Tuple[Field, ...] = fields(option)
2944
for opt_field in opt_fields:
3045
metadata = opt_field.metadata.get('security')
@@ -34,7 +49,7 @@ def _parse_security_option(client: requests.Session, option: dataclass):
3449
'scheme'), getattr(option, opt_field.name))
3550

3651

37-
def _parse_security_scheme(client: requests.Session, scheme_metadata: dict, scheme: dataclass):
52+
def _parse_security_scheme(client: SecurityClient, scheme_metadata: dict, scheme: dataclass):
3853
scheme_fields: Tuple[Field, ...] = fields(scheme)
3954
for scheme_field in scheme_fields:
4055
metadata = scheme_field.metadata.get('security')
@@ -47,20 +62,24 @@ def _parse_security_scheme(client: requests.Session, scheme_metadata: dict, sche
4762

4863
if scheme_type == "apiKey":
4964
if scheme_metadata.get('sub_type') == 'header':
50-
client.headers[header_name] = value
65+
client.client.headers[header_name] = value
66+
elif scheme_metadata.get('sub_type') == 'query':
67+
client.query_params[header_name] = value
68+
elif scheme_metadata.get('sub_type') == 'cookie':
69+
client.client.cookies[header_name] = value
5170
else:
52-
raise Exception('not yet implemented')
71+
raise Exception('not supported')
5372
elif scheme_type == "openIdConnect":
54-
client.headers[header_name] = value
73+
client.client.headers[header_name] = value
5574
elif scheme_type == 'oauth2':
56-
client.headers[header_name] = value
75+
client.client.headers[header_name] = value
5776
elif scheme_type == 'http':
58-
if scheme_metadata.get('sub_type') == 'bearer':
59-
client.headers[header_name] = value
77+
if scheme_metadata.get('sub_type') == 'bearer' or scheme_metadata.get('sub_type') == 'basic':
78+
client.client.headers[header_name] = value
6079
else:
61-
raise Exception('not yet implemented')
80+
raise Exception('not supported')
6281
else:
63-
raise Exception('not yet implemented')
82+
raise Exception('not supported')
6483

6584

6685
def generate_url(server_url: str, path: str, path_params: dataclass) -> str:

0 commit comments

Comments
 (0)