implement usecase solution

uebung_controllers
michael 2025-02-03 00:29:25 +01:00
parent 91d39c6d47
commit 6aee64db8f
2 changed files with 34 additions and 15 deletions

View File

@ -2,18 +2,31 @@
from typing import Optional
#dependency imports
#TODO: A1: Use correct dependencies
from entities.user import User
from use_cases.user_repository import IUserRepository
#TODO: A2: Create InputPort
class ICreateUserInputPort:
def execute(self, user_name:str, user_email:str, user_password:str):
"""
Abstract method to execute use case.
"""
raise NotImplementedError("execute must be implemented by a subclass")
class ICreateUserOutputPort:
def present(self, user:User):
"""
Abstract method to execute use case.
"""
raise NotImplementedError("execute must be implemented by a subclass")
#TODO: A3: Create OutputPort
class CreateUser(ICreateUserInputPort):
def __init__(self, user_repository: IUserRepository, output_port: ICreateUserOutputPort):
self.user_repository = user_repository
self.output_port = output_port
#TODO: A5: Use Case CreateUser:
class CreateUser:
def __init__(self):
pass
#TODO: Initialize required Interfaces
def execute(self):
pass
#TODO: Implement Use Case
def execute(self, user_name:str, user_email:str, user_password:str):
"""
Creates a User.
"""
user = self.user_repository.create_user(user_name, user_email, user_password)
self.output_port.present(user)

View File

@ -1,5 +1,11 @@
from typing import Optional, List
from typing import Optional
#dependency imports
from entities.user import User
class IUserRepository:
pass
#TODO: A4: Define interface functions for creating a user
def create_user(self, user_name: str, user_email: str, user_password: str) -> Optional[User]:
"""
Abstract method to fetch product data by ID.
"""
raise NotImplementedError("get_product_by_id must be implemented by a subclass")