1010import requests
1111
1212from itk_dev_shared_components .kmd_nova .authentication import NovaAccess
13- from itk_dev_shared_components .kmd_nova .nova_objects import Document
13+ from itk_dev_shared_components .kmd_nova .nova_objects import Document , Caseworker
1414from itk_dev_shared_components .kmd_nova . util import datetime_from_iso_string
1515
1616
@@ -44,7 +44,8 @@ def get_documents(case_uuid: str, nova_access: NovaAccess) -> list[Document]:
4444 "approved" : True ,
4545 "documentDate" : True ,
4646 "fileExtension" : True ,
47- "documentCategory" : True
47+ "documentCategory" : True ,
48+ "caseworker" : True
4849 }
4950 }
5051
@@ -55,6 +56,16 @@ def get_documents(case_uuid: str, nova_access: NovaAccess) -> list[Document]:
5556
5657 documents = []
5758 for document_dict in response .json ()['documents' ]:
59+
60+ if 'caseworker' in document_dict :
61+ caseworker = Caseworker (
62+ uuid = document_dict ['caseworker' ]['kspIdentity' ]['novaUserId' ],
63+ name = document_dict ['caseworker' ]['kspIdentity' ]['fullName' ],
64+ ident = document_dict ['caseworker' ]['kspIdentity' ]['racfId' ]
65+ )
66+ else :
67+ caseworker = None
68+
5869 doc = Document (
5970 uuid = document_dict ['documentUuid' ],
6071 document_number = document_dict ['documentNumber' ],
@@ -66,7 +77,8 @@ def get_documents(case_uuid: str, nova_access: NovaAccess) -> list[Document]:
6677 document_date = datetime_from_iso_string (document_dict ['documentDate' ]),
6778 file_extension = document_dict ['fileExtension' ],
6879 category_name = document_dict .get ('documentCategoryName' ),
69- category_uuid = document_dict .get ('documentCategoryUuid' )
80+ category_uuid = document_dict .get ('documentCategoryUuid' ),
81+ caseworker = caseworker
7082 )
7183 documents .append (doc )
7284
@@ -184,6 +196,14 @@ def attach_document_to_case(case_uuid: str, document: Document, nova_access: Nov
184196 "accessToDocuments" : True
185197 }
186198
199+ if document .caseworker :
200+ payload ['caseworker' ] = {
201+ "kspIdentity" : {
202+ "racfId" : document .caseworker .ident ,
203+ "fullName" : document .caseworker .name
204+ }
205+ }
206+
187207 headers = {'Content-Type' : 'application/json' , 'Authorization' : f"Bearer { nova_access .get_bearer_token ()} " }
188208 response = requests .post (url , params = params , headers = headers , json = payload , timeout = 60 )
189209 response .raise_for_status ()
0 commit comments