diff --git a/atst/domain/requests.py b/atst/domain/requests.py index 47629ebc..808f2553 100644 --- a/atst/domain/requests.py +++ b/atst/domain/requests.py @@ -13,6 +13,7 @@ from atst.models.request import Request from atst.models.request_revision import RequestRevision from atst.models.request_status_event import RequestStatusEvent, RequestStatus from atst.models.request_review import RequestReview +from atst.models.request_internal_comment import RequestInternalComment from atst.utils import deep_merge from .exceptions import NotFoundError, UnauthorizedError @@ -311,3 +312,13 @@ WHERE requests_with_status.status = :status Requests.set_status(request, RequestStatus.CHANGES_REQUESTED_TO_FINVER) return Requests._add_review(user, request, review_data) + + @classmethod + def update_internal_comments(cls, user, request, comment_text): + Authorization.check_can_approve_request(user) + + request.internal_comments = RequestInternalComment(text=comment_text, user=user) + db.session.add(request) + db.session.commit() + + return request diff --git a/tests/domain/test_requests.py b/tests/domain/test_requests.py index bb4d8949..c9f03d8e 100644 --- a/tests/domain/test_requests.py +++ b/tests/domain/test_requests.py @@ -221,3 +221,12 @@ def test_request_changes_to_financial_verification_info(): assert request.status == RequestStatus.CHANGES_REQUESTED_TO_FINVER current_review = request.latest_status.review assert current_review.fname_mao == review_data["fname_mao"] + + +def test_update_internal_comments(): + request = RequestFactory.create() + ccpo = UserFactory.from_atat_role("ccpo") + + request = Requests.update_internal_comments(ccpo, request, "this is my comment") + + assert request.internal_comments.text == "this is my comment"