Skip to content

Commit

Permalink
Merge branch 'dev' into testing
Browse files Browse the repository at this point in the history
  • Loading branch information
josue-venegas-almonacid authored Nov 14, 2023
2 parents 0e75e20 + 15c81af commit da0b692
Show file tree
Hide file tree
Showing 18 changed files with 590 additions and 164 deletions.
2 changes: 1 addition & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"python.testing.pytestArgs": [
"."
"--cov-report=xml", "--cov-report=term", "--cov=src", "src"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
Expand Down
1 change: 1 addition & 0 deletions Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ black = "*"
isort = "*"
pytest = "*"
pyinstaller = "*"
pytest-cov = "*"

[requires]
python_version = "3.10"
104 changes: 87 additions & 17 deletions Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from typing import Optional
from uuid import UUID

from src.models.tour import DeliveryID, TourID
from src.services.command.abstract_command import AbstractCommand
from src.services.tour.tour_service import TourService


class UpdateDeliveryRequestDeliveryMan(AbstractCommand):
__delivery_request_id: DeliveryID
__tour_id: TourID
__delivery_man_id: UUID
__previous_delivery_man_id: Optional[UUID] = None

def __init__(
self, delivery_request_id: DeliveryID, tour_id: TourID, delivery_man_id: UUID
) -> None:
super().__init__("Ajustement du livreur d'une demande de livraison")
self.__delivery_request_id = delivery_request_id
self.__tour_id = tour_id
self.__delivery_man_id = delivery_man_id

def execute(self) -> None:
self.__previous_delivery_man_id = (
TourService.instance().update_delivery_request_delivery_man(
delivery_request_id=self.__delivery_request_id,
tour_id=self.__tour_id,
delivery_man_id=self.__delivery_man_id,
)
)

def undo(self) -> None:
if self.__previous_delivery_man_id is None:
raise Exception("Cannot undo a command that has not been executed")

TourService.instance().update_delivery_request_delivery_man(
delivery_request_id=self.__delivery_request_id,
tour_id=self.__delivery_man_id,
delivery_man_id=self.__previous_delivery_man_id,
)

self.__previous_delivery_man_id = None
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from typing import Optional

from src.models.tour import DeliveryID, TourID
from src.services.command.abstract_command import AbstractCommand
from src.services.tour.tour_service import TourService


class UpdateDeliveryRequestTimeWindowCommand(AbstractCommand):
__delivery_request_id: DeliveryID
__tour_id: TourID
__time_window: int
__previous_time_window: Optional[int] = None

def __init__(
self, delivery_request_id: DeliveryID, tour_id: TourID, time_window: int
) -> None:
super().__init__("Ajustement de la fenêtre de temps d'une demande de livraison")
self.__delivery_request_id = delivery_request_id
self.__tour_id = tour_id
self.__time_window = time_window

def execute(self) -> None:
self.__previous_time_window = (
TourService.instance().update_delivery_request_time_window(
delivery_request_id=self.__delivery_request_id,
tour_id=self.__tour_id,
time_window=self.__time_window,
)
)

def undo(self) -> None:
if self.__previous_time_window is None:
raise Exception("Cannot undo a command that has not been executed")

TourService.instance().update_delivery_request_time_window(
delivery_request_id=self.__delivery_request_id,
tour_id=self.__tour_id,
time_window=self.__previous_time_window,
)

self.__previous_time_window = None
Loading

0 comments on commit da0b692

Please sign in to comment.