fix merge conflict

This commit is contained in:
ivankirpichnikov
2025-11-21 10:25:09 +03:00
16 changed files with 130 additions and 12 deletions
@@ -1,11 +1,19 @@
from abc import abstractmethod
from typing import Protocol
from template_project.application.notification_device.entity import NotificationDevice
from template_project.application.user.entity import UserId
from template_project.application.user.notification_device.entity import NotificationDevice
class NotificationDeviceDataGateway(Protocol):
@abstractmethod
async def load_by_user_id(self, user_id: UserId) -> NotificationDevice | None:
raise NotImplementedError
@abstractmethod
async def load_by_user_id_and_device_id(
self,
user_id: UserId,
device_id: str,
) -> NotificationDevice | None:
raise NotImplementedError
@@ -0,0 +1,37 @@
from template_project.application.common.data_structure import to_data_structure
from template_project.application.common.identity_provider import IdentityProvider
from template_project.application.common.interactor import to_interactor
from template_project.application.common.unit_of_work import UnitOfWork
from template_project.application.notification_device.data_gateway import NotificationDeviceDataGateway
from template_project.application.notification_device.entity import NotificationDevice
@to_data_structure
class RegisterNotificationDeviceRequest:
device_id: str
@to_interactor
class RegisterNotificationDeviceInteractor:
identity_provider: IdentityProvider
notification_device_data_gateway: NotificationDeviceDataGateway
unit_of_work: UnitOfWork
async def execute(self, request: RegisterNotificationDeviceRequest) -> None:
current_user = await self.identity_provider.get_current_user()
existing_device = await self.notification_device_data_gateway.load_by_user_id_and_device_id(
user_id=current_user.id,
device_id=request.device_id,
)
if existing_device:
return
notification_device = NotificationDevice.factory(
user_id=current_user.id,
device_id=request.device_id,
)
await self.unit_of_work.add(notification_device)
await self.unit_of_work.commit()
@@ -2,8 +2,8 @@ from template_project.application.common.data_structure import to_data_structure
from template_project.application.common.identity_provider import IdentityProvider
from template_project.application.common.interactor import to_interactor
from template_project.application.common.notifications.service import NotificationService
from template_project.application.user.notification_device.data_gateway import NotificationDeviceDataGateway
from template_project.application.user.notification_device.errors import NotificationDeviceNotFoundError
from template_project.application.notification_device.data_gateway import NotificationDeviceDataGateway
from template_project.application.notification_device.errors import NotificationDeviceNotFoundError
@to_data_structure