precommit and some cleanup w/ burnettk

This commit is contained in:
jasquat 2022-06-23 10:30:57 -04:00
parent 0ce9e86172
commit 016ec34d95
5 changed files with 43 additions and 61 deletions

View File

@ -3,7 +3,7 @@ from __future__ import annotations
import enum
from dataclasses import dataclass
from typing import Any, Optional
from typing import Any
import marshmallow
from flask_bpmn.models.db import db
@ -198,17 +198,17 @@ class ProcessInstanceMetadata:
"""ProcessInstanceMetadata."""
id: int
display_name: Optional[str] = None
description: Optional[str] = None
spec_version: Optional[str] = None
state: Optional[str] = None
display_name: str | None = None
description: str | None = None
spec_version: str | None = None
state: str | None = None
status: ProcessInstanceStatus | None = None
total_tasks: Optional[int] = None
completed_tasks: Optional[int] = None
is_review: Optional[bool] = None
state_message: Optional[str] = None
process_model_identifier: Optional[str] = None
process_group_id: Optional[str] = None
total_tasks: int | None = None
completed_tasks: int | None = None
is_review: bool | None = None
state_message: str | None = None
process_model_identifier: str | None = None
process_group_id: str | None = None
@classmethod
def from_process_instance(

View File

@ -24,6 +24,7 @@ from spiffworkflow_backend.models.principal import PrincipalModel
from spiffworkflow_backend.models.process_group import ProcessGroupSchema
from spiffworkflow_backend.models.process_instance import ProcessInstanceApiSchema
from spiffworkflow_backend.models.process_instance import ProcessInstanceModel
from spiffworkflow_backend.models.process_model import ProcessModelInfo
from spiffworkflow_backend.models.process_model import ProcessModelInfoSchema
from spiffworkflow_backend.services.error_handling_service import ErrorHandlingService
from spiffworkflow_backend.services.process_instance_processor import (
@ -146,22 +147,11 @@ def process_model_show(
process_group_id: str, process_model_id: str
) -> Dict[str, Union[str, List[Dict[str, Optional[Union[str, int, bool]]]], bool, int]]:
"""Process_model_show."""
try:
process_model = ProcessModelService().get_process_model(
process_model_id, group_id=process_group_id
)
files = sorted(SpecFileService.get_files(process_model))
process_model.files = files
process_model_json = ProcessModelInfoSchema().dump(process_model)
return process_model_json
except ProcessEntityNotFoundError as exception:
raise (
ApiError(
code="process_mode_cannot_be_found",
message=f"Process model cannot be found: {process_model_id}",
status_code=400,
)
) from exception
process_model = get_process_model(process_model_id, process_group_id)
files = sorted(SpecFileService.get_files(process_model))
process_model.files = files
process_model_json = ProcessModelInfoSchema().dump(process_model)
return process_model_json
def process_model_list(
@ -192,9 +182,7 @@ def get_file(
process_group_id: str, process_model_id: str, file_name: str
) -> Dict[str, Optional[Union[str, int, bool]]]:
"""Get_file."""
process_model = ProcessModelService().get_process_model(
process_model_id, group_id=process_group_id
)
process_model = get_process_model(process_model_id, process_group_id)
files = SpecFileService.get_files(process_model, file_name)
if len(files) == 0:
raise ApiError(
@ -216,9 +204,7 @@ def process_model_file_update(
process_group_id: str, process_model_id: str, file_name: str
) -> flask.wrappers.Response:
"""Process_model_file_save."""
process_model = ProcessModelService().get_process_model(
process_model_id, group_id=process_group_id
)
process_model = get_process_model(process_model_id, process_group_id)
request_file = get_file_from_request()
request_file_contents = request_file.stream.read()
@ -236,9 +222,7 @@ def process_model_file_update(
def add_file(process_group_id: str, process_model_id: str) -> flask.wrappers.Response:
"""Add_file."""
process_model_service = ProcessModelService()
process_model = process_model_service.get_process_model(
process_model_id, group_id=process_group_id
)
process_model = get_process_model(process_model_id, process_group_id)
request_file = get_file_from_request()
file = SpecFileService.add_file(
process_model, request_file.filename, request_file.stream.read()
@ -294,17 +278,7 @@ def process_instance_list(
process_status: Optional[str] = None,
) -> flask.wrappers.Response:
"""Process_instance_list."""
process_model = ProcessModelService().get_process_model(
process_model_id, group_id=process_group_id
)
if process_model is None:
raise (
ApiError(
code="process_model_cannot_be_found",
message=f"Process model cannot be found: {process_model_id}",
status_code=400,
)
)
process_model = get_process_model(process_model_id, process_group_id)
results = ProcessInstanceModel.query.filter_by(
process_model_identifier=process_model.id
@ -364,17 +338,7 @@ def process_instance_report(
process_group_id: str, process_model_id: str, page: int = 1, per_page: int = 100
) -> flask.wrappers.Response:
"""Process_instance_list."""
process_model = ProcessModelService().get_process_model(
process_model_id, group_id=process_group_id
)
if process_model is None:
raise (
ApiError(
code="process_mode_cannot_be_found",
message=f"Process model cannot be found: {process_model_id}",
status_code=400,
)
)
process_model = get_process_model(process_model_id, process_group_id)
process_instances = (
ProcessInstanceModel.query.filter_by(process_model_identifier=process_model.id)
@ -414,3 +378,22 @@ def get_file_from_request() -> FileStorage:
status_code=400,
)
return request_file
def get_process_model(process_model_id: str, process_group_id: str) -> ProcessModelInfo:
"""Get_process_model."""
process_model = None
try:
process_model = ProcessModelService().get_process_model(
process_model_id, group_id=process_group_id
)
except ProcessEntityNotFoundError as exception:
raise (
ApiError(
code="process_model_cannot_be_found",
message=f"Process model cannot be found: {process_model_id}",
status_code=400,
)
) from exception
return process_model

View File

@ -1,5 +1,6 @@
"""Error_handling_service."""
from typing import Union
from flask_bpmn.api.api_error import ApiError
from spiffworkflow_backend.services.process_instance_processor import (

View File

@ -73,8 +73,6 @@ class ProcessModelService(FileSystemService):
message=f"We cannot delete the model `{process_model_id}`, there are existing instances that depend on it.",
)
process_model = self.get_process_model(process_model_id)
if not process_model:
return
if process_model.library:
self.__remove_library_references(process_model.id)
path = self.workflow_path(process_model)

View File

@ -533,7 +533,7 @@ def test_get_process_model_when_not_found(
headers=logged_in_headers(user),
)
assert response.status_code == 400
assert response.json["code"] == "process_mode_cannot_be_found"
assert response.json["code"] == "process_model_cannot_be_found"
def test_process_instance_create(