init
This commit is contained in:
0
flask_demo_api/protocols/__init__.py
Normal file
0
flask_demo_api/protocols/__init__.py
Normal file
19
flask_demo_api/protocols/models.py
Normal file
19
flask_demo_api/protocols/models.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from dataclasses import dataclass
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class Gender(Enum):
|
||||
MALE = "Male"
|
||||
FEMALE = "Female"
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class PeopleRequest:
|
||||
id: int | str
|
||||
name: str
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class GenderResponse:
|
||||
id: int | str
|
||||
gender: Gender
|
10
flask_demo_api/protocols/repository.py
Normal file
10
flask_demo_api/protocols/repository.py
Normal file
@@ -0,0 +1,10 @@
|
||||
from abc import abstractmethod
|
||||
from typing import Protocol
|
||||
|
||||
from flask_demo_api.protocols.models import GenderResponse, PeopleRequest
|
||||
|
||||
|
||||
class RepositoryGateway(Protocol):
|
||||
@abstractmethod
|
||||
def get_gender(self, people: PeopleRequest) -> GenderResponse | None:
|
||||
raise NotImplementedError
|
Reference in New Issue
Block a user