Skip to content

Commit ef8907e

Browse files
committed
additional cleanup / type fixes, consolidate Union types
build-public-backend.sh
1 parent 68f87b8 commit ef8907e

File tree

3 files changed

+32
-37
lines changed

3 files changed

+32
-37
lines changed

backend/btrixcloud/models.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1974,6 +1974,24 @@ class SubscriptionAddMinutesOut(SubscriptionAddMinutes, SubscriptionEventOut):
19741974
type: Literal["add-minutes"] = "add-minutes"
19751975

19761976

1977+
# ============================================================================
1978+
SubscriptionEventAny = Union[
1979+
SubscriptionCreate,
1980+
SubscriptionUpdate,
1981+
SubscriptionCancel,
1982+
SubscriptionImport,
1983+
SubscriptionAddMinutes,
1984+
]
1985+
1986+
SubscriptionEventAnyOut = Union[
1987+
SubscriptionCreateOut,
1988+
SubscriptionUpdateOut,
1989+
SubscriptionCancelOut,
1990+
SubscriptionImportOut,
1991+
SubscriptionAddMinutesOut,
1992+
]
1993+
1994+
19771995
# ============================================================================
19781996
class SubscriptionTrialEndReminder(BaseModel):
19791997
"""Email reminder that subscription will end soon"""
@@ -3146,14 +3164,7 @@ class PaginatedProfileResponse(PaginatedResponse):
31463164
class PaginatedSubscriptionEventResponse(PaginatedResponse):
31473165
"""Response model for paginated subscription events"""
31483166

3149-
items: List[
3150-
Union[
3151-
SubscriptionCreateOut,
3152-
SubscriptionUpdateOut,
3153-
SubscriptionCancelOut,
3154-
SubscriptionImportOut,
3155-
]
3156-
]
3167+
items: List[SubscriptionEventAnyOut]
31573168

31583169

31593170
# ============================================================================

backend/btrixcloud/subs.py

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
Subscription 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
66
import os
77
import asyncio
88
from uuid import UUID
@@ -24,11 +24,13 @@
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"""

backend/test/test_org_subs.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -762,7 +762,7 @@ def test_subscription_events_log_filter_sort(admin_auth_headers):
762762

763763
last_id = None
764764
for event in events:
765-
sub_id = event["subId"]
765+
sub_id = event.get("subId")
766766
if last_id:
767767
assert last_id <= sub_id
768768
last_id = sub_id
@@ -778,7 +778,7 @@ def test_subscription_events_log_filter_sort(admin_auth_headers):
778778

779779
last_id = None
780780
for event in events:
781-
sub_id = event["subId"]
781+
sub_id = event.get("subId")
782782
if last_id:
783783
assert last_id >= sub_id
784784
last_id = sub_id
@@ -961,7 +961,7 @@ def test_subscription_add_minutes(admin_auth_headers):
961961
assert len(quota_updates)
962962
last_update = quota_updates[len(quota_updates) - 1]
963963

964-
assert last_update["type"] == "add-minutes"
964+
print(last_update)
965965
assert last_update["context"] == "addon"
966966
assert last_update["update"] == {
967967
"maxPagesPerCrawl": 100,

0 commit comments

Comments
 (0)