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
« 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
5from starlette.datastructures import State
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
13class DocumentProcessManagement:
14 def __init__(
15 self,
16 document_process_repository: DocumentProcessRepository,
17 ):
18 self.document_process_repository: DocumentProcessRepository = document_process_repository
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 )
31 return found_document_processes
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 )
40 return found_document_process
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 )
50 return created_document_process
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 )
58 return created_document_process
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 )
68 return patched_document_process
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 )
79 return patched_document_process
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 )
88 return deleted_document_process