22Subscription API handling
33"""
44
5- from typing import Awaitable , Callable , Union , Any , Optional , Tuple , List , Annotated
5+ from typing import Awaitable , Callable , Any , Optional , Tuple , List , Annotated
66import os
77import asyncio
88from uuid import UUID
2424 SubscriptionUpdate ,
2525 SubscriptionCancel ,
2626 SubscriptionAddMinutes ,
27+ SubscriptionEventAny ,
2728 SubscriptionCreateOut ,
2829 SubscriptionImportOut ,
2930 SubscriptionUpdateOut ,
3031 SubscriptionCancelOut ,
3132 SubscriptionAddMinutesOut ,
33+ SubscriptionEventAnyOut ,
3234 SubscriptionEventType ,
3335 Subscription ,
3436 SubscriptionPortalUrlRequest ,
@@ -247,13 +249,7 @@ async def add_sub_minutes(self, add_min: SubscriptionAddMinutes):
247249 async def add_sub_event (
248250 self ,
249251 type_ : SubscriptionEventType ,
250- event : Union [
251- SubscriptionCreate ,
252- SubscriptionImport ,
253- SubscriptionUpdate ,
254- SubscriptionCancel ,
255- SubscriptionAddMinutes ,
256- ],
252+ event : SubscriptionEventAny ,
257253 oid : UUID ,
258254 ) -> None :
259255 """add a subscription event to the db"""
@@ -263,24 +259,20 @@ async def add_sub_event(
263259 data ["oid" ] = oid
264260 await self .subs .insert_one (data )
265261
266- def _get_sub_by_type_from_data (self , data : dict [str , object ]) -> Union [
267- SubscriptionCreateOut ,
268- SubscriptionImportOut ,
269- SubscriptionUpdateOut ,
270- SubscriptionCancelOut ,
271- SubscriptionAddMinutesOut ,
272- ]:
262+ def _get_sub_by_type_from_data (
263+ self , data : dict [str , object ]
264+ ) -> SubscriptionEventAnyOut :
273265 """convert dict to propert background job type"""
274266 if data ["type" ] == "create" :
275267 return SubscriptionCreateOut (** data )
276268 if data ["type" ] == "import" :
277269 return SubscriptionImportOut (** data )
278270 if data ["type" ] == "update" :
279271 return SubscriptionUpdateOut (** data )
280- if data ["type" ] == "add-minutes" :
281- return SubscriptionAddMinutesOut (** data )
282272 if data ["type" ] == "cancel" :
283273 return SubscriptionCancelOut (** data )
274+ if data ["type" ] == "add-minutes" :
275+ return SubscriptionAddMinutesOut (** data )
284276
285277 raise HTTPException (status_code = 500 , detail = "unknown sub event" )
286278
@@ -297,15 +289,7 @@ async def list_sub_events(
297289 sort_by : Optional [str ] = None ,
298290 sort_direction : Optional [int ] = - 1 ,
299291 ) -> Tuple [
300- List [
301- Union [
302- SubscriptionCreateOut ,
303- SubscriptionImportOut ,
304- SubscriptionUpdateOut ,
305- SubscriptionCancelOut ,
306- SubscriptionAddMinutesOut ,
307- ]
308- ],
292+ List [SubscriptionEventAnyOut ],
309293 int ,
310294 ]:
311295 """list subscription events"""
0 commit comments