implement usecase solution
parent
91d39c6d47
commit
6aee64db8f
|
@ -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)
|
|
@ -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")
|
Loading…
Reference in New Issue