Coverage for apps/inners/use_cases/managements/document_process_management.py: 86%

35 statements  

« prev     ^ index     » next       coverage.py v7.6.1, created at 2024-09-22 19:03 +0000

1import uuid 

2from typing import List 

3from uuid import UUID 

4 

5from starlette.datastructures import State 

6 

7from apps.inners.models.daos.document_process import DocumentProcess 

8from apps.inners.models.dtos.contracts.requests.managements.document_processes.create_one_body import CreateOneBody 

9from apps.inners.models.dtos.contracts.requests.managements.document_processes.patch_one_body import PatchOneBody 

10from apps.outers.repositories.document_process_repository import DocumentProcessRepository 

11 

12 

13class DocumentProcessManagement: 

14 def __init__( 

15 self, 

16 document_process_repository: DocumentProcessRepository, 

17 ): 

18 self.document_process_repository: DocumentProcessRepository = document_process_repository 

19 

20 async def find_many_with_authorization_and_pagination(self, state: State, page_position: int, page_size: int) -> \ 

21 List[ 

22 DocumentProcess]: 

23 found_document_processes: List[ 

24 DocumentProcess] = await self.document_process_repository.find_many_by_account_id_with_pagination( 

25 session=state.session, 

26 account_id=state.authorized_session.account_id, 

27 page_position=page_position, 

28 page_size=page_size 

29 ) 

30 

31 return found_document_processes 

32 

33 async def find_one_by_id_with_authorization(self, state: State, id: UUID) -> DocumentProcess: 

34 found_document_process: DocumentProcess = await self.document_process_repository.find_one_by_id_and_accound_id( 

35 session=state.session, 

36 id=id, 

37 account_id=state.authorized_session.account_id 

38 ) 

39 

40 return found_document_process 

41 

42 async def create_one(self, state: State, body: CreateOneBody) -> DocumentProcess: 

43 document_process_creator: DocumentProcess = DocumentProcess(**body.dict()) 

44 document_process_creator.id = uuid.uuid4() 

45 created_document_process: DocumentProcess = await self.create_one_raw( 

46 state=state, 

47 document_process_creator=document_process_creator 

48 ) 

49 

50 return created_document_process 

51 

52 async def create_one_raw(self, state: State, document_process_creator: DocumentProcess) -> DocumentProcess: 

53 created_document_process: DocumentProcess = self.document_process_repository.create_one( 

54 session=state.session, 

55 document_process_creator=document_process_creator 

56 ) 

57 

58 return created_document_process 

59 

60 async def patch_one_by_id_with_authorization(self, state: State, id: UUID, body: PatchOneBody) -> DocumentProcess: 

61 document_process_patcher: DocumentProcess = DocumentProcess(**body.dict()) 

62 patched_document_process: DocumentProcess = await self.patch_one_by_id_raw_with_authorization( 

63 state=state, 

64 id=id, 

65 document_process_patcher=document_process_patcher 

66 ) 

67 

68 return patched_document_process 

69 

70 async def patch_one_by_id_raw_with_authorization(self, state: State, id: UUID, 

71 document_process_patcher: DocumentProcess) -> DocumentProcess: 

72 patched_document_process: DocumentProcess = await self.document_process_repository.patch_one_by_id_and_account_id( 

73 session=state.session, 

74 id=id, 

75 account_id=state.authorized_session.account_id, 

76 document_process_patcher=document_process_patcher 

77 ) 

78 

79 return patched_document_process 

80 

81 async def delete_one_by_id_with_authorization(self, state: State, id: UUID) -> DocumentProcess: 

82 deleted_document_process: DocumentProcess = await self.document_process_repository.delete_one_by_id_and_account_id( 

83 session=state.session, 

84 id=id, 

85 account_id=state.authorized_session.account_id 

86 ) 

87 

88 return deleted_document_process