2525from app .blueprints .rest .endpoints import response_api_not_found
2626from app .blueprints .rest .endpoints import response_api_created
2727from app .blueprints .rest .endpoints import response_api_error
28+ from app .blueprints .rest .endpoints import response_api_success
2829from app .blueprints .rest .parsing import parse_pagination_parameters
2930from app .iris_engine .access_control .iris_user import iris_current_user
3031from app .business .comments import comments_get_filtered_by_event
3132from app .business .comments import comments_create_for_event
33+ from app .business .comments import comments_get_for_event
3234from app .business .events import events_get
3335from app .business .errors import ObjectNotFoundError
3436from app .models .cases import CasesEvent
@@ -49,7 +51,7 @@ def _get_event(event_identifier, possible_case_access_levels) -> CasesEvent:
4951 raise ObjectNotFoundError ()
5052 return event
5153
52- def get (self , event_identifier ):
54+ def search (self , event_identifier ):
5355 try :
5456 event = self ._get_event (event_identifier , [CaseAccessLevel .read_only , CaseAccessLevel .full_access ])
5557
@@ -73,6 +75,17 @@ def create(self, event_identifier):
7375 except ObjectNotFoundError :
7476 return response_api_not_found ()
7577
78+ def read (self , event_identifier , identifier ):
79+ try :
80+ event = self ._get_event (event_identifier , [CaseAccessLevel .read_only , CaseAccessLevel .full_access ])
81+ comment = comments_get_for_event (event , identifier )
82+ result = self ._schema .dump (comment )
83+ return response_api_success (result )
84+ except ValidationError as e :
85+ return response_api_error ('Data error' , data = e .normalized_messages ())
86+ except ObjectNotFoundError :
87+ return response_api_not_found ()
88+
7689
7790events_comments_blueprint = Blueprint ('events_comments' , __name__ , url_prefix = '/<int:event_identifier>/comments' )
7891comments_operations = CommentsOperations ()
@@ -81,10 +94,16 @@ def create(self, event_identifier):
8194@events_comments_blueprint .get ('' )
8295@ac_api_requires ()
8396def get_event_comments (event_identifier ):
84- return comments_operations .get (event_identifier )
97+ return comments_operations .search (event_identifier )
8598
8699
87100@events_comments_blueprint .post ('' )
88101@ac_api_requires ()
89102def create_event_comment (event_identifier ):
90103 return comments_operations .create (event_identifier )
104+
105+
106+ @events_comments_blueprint .get ('/<int:identifier>' )
107+ @ac_api_requires ()
108+ def get_event_comment (event_identifier , identifier ):
109+ return comments_operations .read (event_identifier , identifier )
0 commit comments