Skip to content

Commit 976f351

Browse files
committed
ref(entities): extract StarsPurchase from User (#52)
1 parent f644454 commit 976f351

39 files changed

Lines changed: 524 additions & 503 deletions
File renamed without changes.

src/ttt/application/user/stars_purchase/complete_stars_purchase_payment.py renamed to src/ttt/application/stars_purchase/complete_stars_purchase_payment.py

Lines changed: 24 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
from ttt.application.common.ports.clock import Clock
44
from ttt.application.common.ports.map import Map
55
from ttt.application.common.ports.transaction import Transaction
6-
from ttt.application.user.common.ports.user_views import CommonUserViews
7-
from ttt.application.user.common.ports.users import Users
8-
from ttt.application.user.stars_purchase.ports.paid_stars_purchase_payment_inbox import ( # noqa: E501
6+
from ttt.application.stars_purchase.ports.paid_stars_purchase_payment_inbox import ( # noqa: E501
97
PaidStarsPurchasePaymentInbox,
108
)
11-
from ttt.application.user.stars_purchase.ports.user_log import (
12-
StarsPurchaseUserLog,
9+
from ttt.application.stars_purchase.ports.stars_purchase_log import (
10+
StarsPurchaseLog,
1311
)
14-
from ttt.application.user.stars_purchase.ports.user_views import (
15-
StarsPurchaseUserViews,
12+
from ttt.application.stars_purchase.ports.stars_purchase_views import (
13+
StarsPurchaseViews,
1614
)
15+
from ttt.application.stars_purchase.ports.stars_purchases import StarsPurchases
16+
from ttt.application.user.common.ports.user_views import CommonUserViews
17+
from ttt.application.user.common.ports.users import Users
1718
from ttt.entities.finance.payment.payment import PaymentIsNotInProcessError
1819
from ttt.entities.tools.tracking import Tracking
1920

@@ -26,47 +27,48 @@ class CompleteStarsPurchasePayment:
2627
transaction: Transaction
2728
map_: Map
2829
common_views: CommonUserViews
29-
stars_purchase_views: StarsPurchaseUserViews
30-
log: StarsPurchaseUserLog
30+
stars_purchase_views: StarsPurchaseViews
31+
log: StarsPurchaseLog
32+
stars_purchases: StarsPurchases
3133

3234
async def __call__(self) -> None:
3335
async for paid_payment in self.inbox.stream():
3436
current_datetime = await self.clock.current_datetime()
3537

3638
async with self.transaction:
37-
user = await self.users.user_with_id(
38-
paid_payment.user_id,
39+
stars_purchase = (
40+
await self.stars_purchases.stars_purchase_with_id(
41+
paid_payment.purchase_id,
42+
)
3943
)
4044

41-
if user is None:
42-
await self.common_views.user_is_not_registered_view(
43-
paid_payment.user_id,
45+
if stars_purchase is None:
46+
await self.log.no_stars_purchase_to_complete_payment(
47+
paid_payment.purchase_id,
4448
)
45-
continue
49+
return
4650

47-
tracking = Tracking()
4851
try:
49-
user.complete_stars_purchase_payment(
50-
paid_payment.purchase_id,
52+
tracking = Tracking()
53+
stars_purchase.complete_payment(
5154
paid_payment.success,
5255
current_datetime,
5356
tracking,
5457
)
5558
except PaymentIsNotInProcessError:
5659
await self.log.double_stars_purchase_payment_completion(
57-
user,
60+
stars_purchase,
5861
paid_payment,
5962
)
6063
else:
6164
await self.log.stars_purchase_payment_completed(
62-
user,
65+
stars_purchase,
6366
paid_payment,
6467
)
6568

6669
await self.map_(tracking)
6770
await (
6871
self.stars_purchase_views.completed_stars_purchase_view(
69-
user,
70-
paid_payment.purchase_id,
72+
stars_purchase,
7173
)
7274
)
File renamed without changes.
File renamed without changes.

src/ttt/application/user/stars_purchase/ports/__init__.py renamed to src/ttt/application/stars_purchase/ports/__init__.py

File renamed without changes.

src/ttt/application/user/stars_purchase/ports/paid_stars_purchase_payment_inbox.py renamed to src/ttt/application/stars_purchase/ports/paid_stars_purchase_payment_inbox.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from abc import ABC, abstractmethod
22
from collections.abc import AsyncIterable
33

4-
from ttt.application.user.common.dto.common import PaidStarsPurchasePayment
4+
from ttt.application.stars_purchase.dto.common import PaidStarsPurchasePayment
55

66

77
class PaidStarsPurchasePaymentInbox(ABC):

src/ttt/application/user/stars_purchase/ports/user_log.py renamed to src/ttt/application/stars_purchase/ports/stars_purchase_log.py

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,24 @@
11
from abc import ABC, abstractmethod
22
from uuid import UUID
33

4-
from ttt.application.user.common.dto.common import PaidStarsPurchasePayment
4+
from ttt.application.stars_purchase.dto.common import PaidStarsPurchasePayment
55
from ttt.entities.core.stars import Stars
6+
from ttt.entities.core.stars_purchase.stars_purchase import StarsPurchase
67
from ttt.entities.core.user.user import User
78

89

9-
class StarsPurchaseUserLog(ABC):
10+
class StarsPurchaseLog(ABC):
1011
@abstractmethod
11-
async def user_intends_to_buy_stars(
12+
async def stars_puchase_started(
1213
self,
13-
user_id: int,
14+
stars_purchase: StarsPurchase,
1415
/,
1516
) -> None: ...
1617

1718
@abstractmethod
18-
async def user_started_stars_puchase(
19+
async def stars_puchase_payment_started(
1920
self,
20-
user: User,
21-
/,
22-
) -> None: ...
23-
24-
@abstractmethod
25-
async def user_started_stars_puchase_payment(
26-
self,
27-
user: User,
21+
stars_purchase: StarsPurchase,
2822
/,
2923
) -> None: ...
3024

@@ -38,15 +32,15 @@ async def stars_purchase_payment_completion_started(
3832
@abstractmethod
3933
async def stars_purchase_payment_completed(
4034
self,
41-
user: User,
35+
stars_purchase: StarsPurchase,
4236
payment: PaidStarsPurchasePayment,
4337
/,
4438
) -> None: ...
4539

4640
@abstractmethod
4741
async def double_stars_purchase_payment_completion(
4842
self,
49-
user: User,
43+
stars_purchase: StarsPurchase,
5044
paid_payment: PaidStarsPurchasePayment,
5145
) -> None: ...
5246

@@ -61,15 +55,20 @@ async def invalid_stars_for_stars_purchase(
6155
@abstractmethod
6256
async def double_stars_purchase_payment_start(
6357
self,
64-
user: User,
58+
stars_purchase: StarsPurchase,
59+
/,
60+
) -> None: ...
61+
62+
@abstractmethod
63+
async def no_stars_purchase_to_start_payment(
64+
self,
6565
purchase_id: UUID,
6666
/,
6767
) -> None: ...
6868

6969
@abstractmethod
70-
async def no_purchase_to_start_stars_purchase_payment(
70+
async def no_stars_purchase_to_complete_payment(
7171
self,
72-
user: User,
7372
purchase_id: UUID,
7473
/,
7574
) -> None: ...

src/ttt/application/user/stars_purchase/ports/stars_purchase_payment_gateway.py renamed to src/ttt/application/stars_purchase/ports/stars_purchase_payment_gateway.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
from collections.abc import AsyncIterable
33
from uuid import UUID
44

5-
from ttt.application.user.common.dto.common import PaidStarsPurchasePayment
6-
from ttt.entities.core.user.stars_purchase import StarsPurchase
5+
from ttt.application.stars_purchase.dto.common import PaidStarsPurchasePayment
6+
from ttt.entities.core.stars_purchase.stars_purchase import StarsPurchase
77

88

99
class StarsPurchasePaymentGateway(ABC):

src/ttt/application/user/stars_purchase/ports/user_views.py renamed to src/ttt/application/stars_purchase/ports/stars_purchase_views.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
from abc import ABC, abstractmethod
2-
from uuid import UUID
32

4-
from ttt.entities.core.user.user import User
3+
from ttt.entities.core.stars_purchase.stars_purchase import StarsPurchase
54

65

7-
class StarsPurchaseUserViews(ABC):
6+
class StarsPurchaseViews(ABC):
87
@abstractmethod
98
async def invalid_stars_for_stars_purchase_view(
109
self,
@@ -22,7 +21,6 @@ async def stars_purchase_will_be_completed_view(
2221
@abstractmethod
2322
async def completed_stars_purchase_view(
2423
self,
25-
user: User,
26-
purchase_id: UUID,
24+
stars_purchase: StarsPurchase,
2725
/,
2826
) -> None: ...
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from abc import ABC, abstractmethod
2+
from uuid import UUID
3+
4+
from ttt.entities.core.stars_purchase.stars_purchase import StarsPurchase
5+
6+
7+
class StarsPurchases(ABC):
8+
@abstractmethod
9+
async def stars_purchase_with_id(
10+
self,
11+
id_: UUID,
12+
/,
13+
) -> StarsPurchase | None: ...

0 commit comments

Comments
 (0)