diff --git a/src/shared/domain/enums/sport.py b/src/shared/domain/enums/sport.py index a0ef3ff..1023572 100644 --- a/src/shared/domain/enums/sport.py +++ b/src/shared/domain/enums/sport.py @@ -8,8 +8,11 @@ class SPORT(Enum): HANDBALL = "Handball" FUTSAL = "Futsal" RUGBY = "Rugby" - PING_PONG= "Ping Pong" + TENIS_MESA= "Tenis de Mesa" + JUDO = "Judo" + FUNCIONAL = "Funcional" BEACH_TENNIS = "Beach Tennis" + ATIVIDADES_ACADEMICAS = "Atividades Academicas" NATACAO = "Natacao" CORRIDA = "Corrida" NA = "NA" diff --git a/src/shared/infra/repositories/booking_repository_dynamo.py b/src/shared/infra/repositories/booking_repository_dynamo.py index b811e5e..c466580 100644 --- a/src/shared/infra/repositories/booking_repository_dynamo.py +++ b/src/shared/infra/repositories/booking_repository_dynamo.py @@ -124,8 +124,13 @@ def get_booking(self, booking_id: str) -> Optional[Booking]: if "Item" not in dynamo_object: return None + + item_data = dynamo_object['Item'] + + if item_data.get('sport') == 'Ping Pong': + item_data['sport'] = 'Tenis de Mesa' - return BookingDynamoDTO.from_dynamo(dynamo_object['Item']).to_entity() + return BookingDynamoDTO.from_dynamo(item_data).to_entity() def delete_booking(self, booking_id: str, user) -> Optional[Booking]: @@ -137,9 +142,10 @@ def delete_booking(self, booking_id: str, user) -> Optional[Booking]: return None is_admin = user_role == 'ADMIN' + is_professor = user_role == 'PROFESSOR' is_owner = user_role == 'STUDENT' and booking.user_id == user_id - if is_admin or is_owner: + if is_admin or is_owner or is_professor: deleted = self.dynamo.delete_item( partition_key=self.booking_partition_key_format(), sort_key=self.booking_sort_key_format(booking_id) @@ -164,6 +170,8 @@ def get_all_bookings(self) -> Optional[List[Booking]]: for item in all_items: if item.get('entity') == 'booking': + if item.get('sport') == 'Ping Pong': + item['sport'] = 'Tenis de Mesa' all_bookings.append(BookingDynamoDTO.from_dynamo(item).to_entity()) return all_bookings diff --git a/src/shared/infra/repositories/booking_repository_mock.py b/src/shared/infra/repositories/booking_repository_mock.py index 1f75237..08b0318 100644 --- a/src/shared/infra/repositories/booking_repository_mock.py +++ b/src/shared/infra/repositories/booking_repository_mock.py @@ -92,7 +92,7 @@ def __init__(self): start_date=1634590800000, end_date=1634592600000, court_number=5, - sport=SPORT.PING_PONG, + sport=SPORT.TENIS_MESA, user_id='c8435c66-13a4-4641-9d54-773b4b8ccc98', booking_id='b8d3bebf-dc0d-4fc1-861c-506a40cc2925', materials=['Raquete', 'Bola'], diff --git a/tests/modules/get_all_bookings/app/test_get_all_bookings_viewmodel.py b/tests/modules/get_all_bookings/app/test_get_all_bookings_viewmodel.py index 5967770..d6ccbef 100644 --- a/tests/modules/get_all_bookings/app/test_get_all_bookings_viewmodel.py +++ b/tests/modules/get_all_bookings/app/test_get_all_bookings_viewmodel.py @@ -94,7 +94,7 @@ def test_get_all_bookings_viewmodel(self): 'start_date': 1634590800000, 'end_date': 1634592600000, 'court_number': 5, - 'sport': 'Ping Pong', + 'sport': 'Tenis de Mesa', 'booking_id': 'b8d3bebf-dc0d-4fc1-861c-506a40cc2925', 'materials': ['Raquete', 'Bola'], 'type': 'Training'