Feat: add update_tribe in service

This commit is contained in:
2022-12-30 07:35:05 +01:00
parent a95ce91b29
commit 36e90a004e
3 changed files with 46 additions and 1 deletions

View File

@@ -45,6 +45,9 @@ class Tribe:
return self.name == other.name
return False
def __hash__(self) -> int:
return hash(self.name)
def to_dict(self) -> dict:
return {"name": self.name, "level": self.level}

View File

@@ -7,6 +7,10 @@ class TribeExists(Exception):
pass
class TribeDosNotExists(Exception):
pass
def add_tribe(name: str, level: str, tribe_repo: AbstractRepository, conn):
tribe = Tribe(name=name, level=level)
try:
@@ -15,3 +19,13 @@ def add_tribe(name: str, level: str, tribe_repo: AbstractRepository, conn):
raise TribeExists(f"The tribe {tribe.name} already exists")
conn.commit()
return tribe
def update_tribe(name: str, level: str, tribe_repo: AbstractRepository, conn):
tribe = Tribe(name=name, level=level)
try:
tribe_repo.update(name=name, tribe=tribe)
except TribeRepositoryError:
raise TribeDosNotExists(f"The tribe {name} does not exists you can't update it")
conn.commit()
return tribe