Skip to content

Commit 7a4cf6e

Browse files
Openapi changes
1 parent 9dcabb7 commit 7a4cf6e

7 files changed

+137
-7
lines changed

fishjam/_openapi_client/models/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
from .peer_options_agent import PeerOptionsAgent
1111
from .peer_options_web_rtc import PeerOptionsWebRTC
1212
from .peer_options_web_rtc_metadata import PeerOptionsWebRTCMetadata
13+
from .peer_options_web_rtc_subscribe_options import PeerOptionsWebRTCSubscribeOptions
14+
from .peer_options_web_rtc_subscribe_options_audio_format import (
15+
PeerOptionsWebRTCSubscribeOptionsAudioFormat,
16+
)
17+
from .peer_options_web_rtc_subscribe_options_audio_sample_rate import (
18+
PeerOptionsWebRTCSubscribeOptionsAudioSampleRate,
19+
)
1320
from .peer_refresh_token_response import PeerRefreshTokenResponse
1421
from .peer_refresh_token_response_data import PeerRefreshTokenResponseData
1522
from .peer_status import PeerStatus
@@ -41,6 +48,9 @@
4148
"PeerOptionsAgent",
4249
"PeerOptionsWebRTC",
4350
"PeerOptionsWebRTCMetadata",
51+
"PeerOptionsWebRTCSubscribeOptions",
52+
"PeerOptionsWebRTCSubscribeOptionsAudioFormat",
53+
"PeerOptionsWebRTCSubscribeOptionsAudioSampleRate",
4454
"PeerRefreshTokenResponse",
4555
"PeerRefreshTokenResponseData",
4656
"PeerStatus",

fishjam/_openapi_client/models/add_peer_json_body.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
1-
from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
1+
from typing import (
2+
TYPE_CHECKING,
3+
Any,
4+
Dict,
5+
List,
6+
Type,
7+
TypeVar,
8+
Union,
9+
)
210

311
from attrs import define as _attrs_define
412
from attrs import field as _attrs_field

fishjam/_openapi_client/models/peer_options_web_rtc.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77

88
if TYPE_CHECKING:
99
from ..models.peer_options_web_rtc_metadata import PeerOptionsWebRTCMetadata
10-
from ..models.subscribe_options import SubscribeOptions
10+
from ..models.peer_options_web_rtc_subscribe_options import (
11+
PeerOptionsWebRTCSubscribeOptions,
12+
)
1113

1214

1315
T = TypeVar("T", bound="PeerOptionsWebRTC")
@@ -21,7 +23,7 @@ class PeerOptionsWebRTC:
2123
"""Enables the peer to use simulcast"""
2224
metadata: Union[Unset, "PeerOptionsWebRTCMetadata"] = UNSET
2325
"""Custom peer metadata"""
24-
subscribe: Union[Unset, None, "SubscribeOptions"] = UNSET
26+
subscribe: Union[Unset, None, "PeerOptionsWebRTCSubscribeOptions"] = UNSET
2527
"""Configuration of server-side subscriptions to the peer's tracks"""
2628
additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
2729
"""@private"""
@@ -53,7 +55,9 @@ def to_dict(self) -> Dict[str, Any]:
5355
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
5456
"""@private"""
5557
from ..models.peer_options_web_rtc_metadata import PeerOptionsWebRTCMetadata
56-
from ..models.subscribe_options import SubscribeOptions
58+
from ..models.peer_options_web_rtc_subscribe_options import (
59+
PeerOptionsWebRTCSubscribeOptions,
60+
)
5761

5862
d = src_dict.copy()
5963
enable_simulcast = d.pop("enableSimulcast", UNSET)
@@ -66,13 +70,13 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
6670
metadata = PeerOptionsWebRTCMetadata.from_dict(_metadata)
6771

6872
_subscribe = d.pop("subscribe", UNSET)
69-
subscribe: Union[Unset, None, SubscribeOptions]
73+
subscribe: Union[Unset, None, PeerOptionsWebRTCSubscribeOptions]
7074
if _subscribe is None:
7175
subscribe = None
7276
elif isinstance(_subscribe, Unset):
7377
subscribe = UNSET
7478
else:
75-
subscribe = SubscribeOptions.from_dict(_subscribe)
79+
subscribe = PeerOptionsWebRTCSubscribeOptions.from_dict(_subscribe)
7680

7781
peer_options_web_rtc = cls(
7882
enable_simulcast=enable_simulcast,
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
from typing import Any, Dict, Type, TypeVar, Union
2+
3+
from attrs import define as _attrs_define
4+
5+
from ..models.peer_options_web_rtc_subscribe_options_audio_format import (
6+
PeerOptionsWebRTCSubscribeOptionsAudioFormat,
7+
)
8+
from ..models.peer_options_web_rtc_subscribe_options_audio_sample_rate import (
9+
PeerOptionsWebRTCSubscribeOptionsAudioSampleRate,
10+
)
11+
from ..types import UNSET, Unset
12+
13+
T = TypeVar("T", bound="PeerOptionsWebRTCSubscribeOptions")
14+
15+
16+
@_attrs_define
17+
class PeerOptionsWebRTCSubscribeOptions:
18+
"""Configuration of server-side subscriptions to the peer's tracks
19+
20+
Example:
21+
{'audioFormat': 'pcm16'}
22+
23+
"""
24+
25+
audio_format: Union[
26+
Unset, PeerOptionsWebRTCSubscribeOptionsAudioFormat
27+
] = PeerOptionsWebRTCSubscribeOptionsAudioFormat.PCM16
28+
"""The format of the output audio"""
29+
audio_sample_rate: Union[
30+
Unset, PeerOptionsWebRTCSubscribeOptionsAudioSampleRate
31+
] = PeerOptionsWebRTCSubscribeOptionsAudioSampleRate.VALUE_16000
32+
"""The sample rate of the output audio"""
33+
34+
def to_dict(self) -> Dict[str, Any]:
35+
"""@private"""
36+
audio_format: Union[Unset, str] = UNSET
37+
if not isinstance(self.audio_format, Unset):
38+
audio_format = self.audio_format.value
39+
40+
audio_sample_rate: Union[Unset, int] = UNSET
41+
if not isinstance(self.audio_sample_rate, Unset):
42+
audio_sample_rate = self.audio_sample_rate.value
43+
44+
field_dict: Dict[str, Any] = {}
45+
field_dict.update({})
46+
if audio_format is not UNSET:
47+
field_dict["audioFormat"] = audio_format
48+
if audio_sample_rate is not UNSET:
49+
field_dict["audioSampleRate"] = audio_sample_rate
50+
51+
return field_dict
52+
53+
@classmethod
54+
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
55+
"""@private"""
56+
d = src_dict.copy()
57+
_audio_format = d.pop("audioFormat", UNSET)
58+
audio_format: Union[Unset, PeerOptionsWebRTCSubscribeOptionsAudioFormat]
59+
if isinstance(_audio_format, Unset):
60+
audio_format = UNSET
61+
else:
62+
audio_format = PeerOptionsWebRTCSubscribeOptionsAudioFormat(_audio_format)
63+
64+
_audio_sample_rate = d.pop("audioSampleRate", UNSET)
65+
audio_sample_rate: Union[
66+
Unset, PeerOptionsWebRTCSubscribeOptionsAudioSampleRate
67+
]
68+
if isinstance(_audio_sample_rate, Unset):
69+
audio_sample_rate = UNSET
70+
else:
71+
audio_sample_rate = PeerOptionsWebRTCSubscribeOptionsAudioSampleRate(
72+
_audio_sample_rate
73+
)
74+
75+
peer_options_web_rtc_subscribe_options = cls(
76+
audio_format=audio_format,
77+
audio_sample_rate=audio_sample_rate,
78+
)
79+
80+
return peer_options_web_rtc_subscribe_options
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from enum import Enum
2+
3+
4+
class PeerOptionsWebRTCSubscribeOptionsAudioFormat(str, Enum):
5+
"""The format of the output audio"""
6+
7+
PCM16 = "pcm16"
8+
9+
def __str__(self) -> str:
10+
return str(self.value)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from enum import IntEnum
2+
3+
4+
class PeerOptionsWebRTCSubscribeOptionsAudioSampleRate(IntEnum):
5+
VALUE_16000 = 16000
6+
VALUE_24000 = 24000
7+
8+
def __str__(self) -> str:
9+
return str(self.value)

fishjam/api/_fishjam_client.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
PeerOptionsAgent,
2626
PeerOptionsWebRTC,
2727
PeerOptionsWebRTCMetadata,
28+
PeerOptionsWebRTCSubscribeOptions,
2829
PeerRefreshTokenResponse,
2930
PeerType,
3031
RoomConfig,
@@ -120,7 +121,7 @@ def create_peer(
120121
peer_options = PeerOptionsWebRTC(
121122
enable_simulcast=options.enable_simulcast,
122123
metadata=peer_metadata,
123-
subscribe=options.subscribe,
124+
subscribe=self.__parse_subscribe_options(options.subscribe),
124125
)
125126
json_body = AddPeerJsonBody(type=PeerType.WEBRTC, options=peer_options)
126127

@@ -233,3 +234,11 @@ def __parse_peer_metadata(self, metadata: dict | None) -> PeerOptionsWebRTCMetad
233234
peer_metadata.additional_properties[key] = value
234235

235236
return peer_metadata
237+
238+
def __parse_subscribe_options(
239+
self,
240+
options: SubscribeOptions | None,
241+
) -> PeerOptionsWebRTCSubscribeOptions | None:
242+
if options is None:
243+
return None
244+
return PeerOptionsWebRTCSubscribeOptions.from_dict(options.to_dict())

0 commit comments

Comments
 (0)