mirror of
https://github.com/sartography/spiffworkflow-backend.git
synced 2025-02-23 12:58:13 +00:00
return a 400 if a process group cannot be found instead of a 500
This commit is contained in:
parent
989dc22f74
commit
d7fdb618fc
@ -1070,9 +1070,7 @@
|
|||||||
"test_resource_att1": ["this_is_the_value"]
|
"test_resource_att1": ["this_is_the_value"]
|
||||||
},
|
},
|
||||||
"_id": "e294304c-796e-4c56-bdf2-8c854f65db59",
|
"_id": "e294304c-796e-4c56-bdf2-8c854f65db59",
|
||||||
"uris": [
|
"uris": ["/blog/post/1"],
|
||||||
"/blog/post/1"
|
|
||||||
],
|
|
||||||
"scopes": [
|
"scopes": [
|
||||||
{
|
{
|
||||||
"name": "read"
|
"name": "read"
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
"""Conftest."""
|
"""Conftest."""
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
|
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from flask.app import Flask
|
from flask.app import Flask
|
||||||
from flask_bpmn.models.db import db
|
from flask_bpmn.models.db import db
|
||||||
from flask_bpmn.models.db import SpiffworkflowBaseDBModel
|
from flask_bpmn.models.db import SpiffworkflowBaseDBModel
|
||||||
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
|
|
||||||
|
|
||||||
from spiffworkflow_backend.helpers.fixture_data import find_or_create_user
|
from spiffworkflow_backend.helpers.fixture_data import find_or_create_user
|
||||||
from spiffworkflow_backend.models.process_instance import ProcessInstanceModel
|
from spiffworkflow_backend.models.process_instance import ProcessInstanceModel
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
from SpiffWorkflow.navigation import NavItem # type: ignore
|
||||||
|
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from typing import cast
|
from typing import cast
|
||||||
|
|
||||||
@ -11,8 +13,6 @@ from flask_bpmn.models.db import SpiffworkflowBaseDBModel
|
|||||||
from marshmallow import INCLUDE
|
from marshmallow import INCLUDE
|
||||||
from marshmallow import Schema
|
from marshmallow import Schema
|
||||||
from marshmallow_enum import EnumField # type: ignore
|
from marshmallow_enum import EnumField # type: ignore
|
||||||
from SpiffWorkflow.navigation import NavItem # type: ignore
|
|
||||||
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
|
|
||||||
from sqlalchemy import ForeignKey
|
from sqlalchemy import ForeignKey
|
||||||
from sqlalchemy.orm import deferred
|
from sqlalchemy.orm import deferred
|
||||||
from sqlalchemy.orm import relationship
|
from sqlalchemy.orm import relationship
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
"""APIs for dealing with process groups, process models, and process instances."""
|
"""APIs for dealing with process groups, process models, and process instances."""
|
||||||
import json
|
import json
|
||||||
import uuid
|
import uuid
|
||||||
|
from SpiffWorkflow import TaskState # type: ignore
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
@ -16,7 +17,6 @@ from flask import request
|
|||||||
from flask.wrappers import Response
|
from flask.wrappers import Response
|
||||||
from flask_bpmn.api.api_error import ApiError
|
from flask_bpmn.api.api_error import ApiError
|
||||||
from flask_bpmn.models.db import db
|
from flask_bpmn.models.db import db
|
||||||
from SpiffWorkflow import TaskState # type: ignore
|
|
||||||
from sqlalchemy import desc
|
from sqlalchemy import desc
|
||||||
|
|
||||||
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
|
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
|
||||||
@ -112,7 +112,16 @@ def process_group_show(
|
|||||||
process_group_id: str,
|
process_group_id: str,
|
||||||
) -> Any:
|
) -> Any:
|
||||||
"""Process_group_show."""
|
"""Process_group_show."""
|
||||||
process_group = ProcessModelService().get_process_group(process_group_id)
|
try:
|
||||||
|
process_group = ProcessModelService().get_process_group(process_group_id)
|
||||||
|
except ProcessEntityNotFoundError as exception:
|
||||||
|
raise (
|
||||||
|
ApiError(
|
||||||
|
code="process_group_cannot_be_found",
|
||||||
|
message=f"Process group cannot be found: {process_group_id}",
|
||||||
|
status_code=400,
|
||||||
|
)
|
||||||
|
) from exception
|
||||||
return ProcessGroupSchema().dump(process_group)
|
return ProcessGroupSchema().dump(process_group)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,16 +1,6 @@
|
|||||||
"""Process_instance_processor."""
|
"""Process_instance_processor."""
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
from typing import Any
|
|
||||||
from typing import Dict
|
|
||||||
from typing import List
|
|
||||||
from typing import Optional
|
|
||||||
from typing import Union
|
|
||||||
|
|
||||||
from flask import current_app
|
|
||||||
from flask_bpmn.api.api_error import ApiError
|
|
||||||
from flask_bpmn.models.db import db
|
|
||||||
from lxml import etree # type: ignore
|
|
||||||
from SpiffWorkflow import Task as SpiffTask # type: ignore
|
from SpiffWorkflow import Task as SpiffTask # type: ignore
|
||||||
from SpiffWorkflow import TaskState
|
from SpiffWorkflow import TaskState
|
||||||
from SpiffWorkflow import WorkflowException
|
from SpiffWorkflow import WorkflowException
|
||||||
@ -31,6 +21,16 @@ from SpiffWorkflow.specs import WorkflowSpec # type: ignore
|
|||||||
from SpiffWorkflow.spiff.parser.process import SpiffBpmnParser # type: ignore
|
from SpiffWorkflow.spiff.parser.process import SpiffBpmnParser # type: ignore
|
||||||
from SpiffWorkflow.spiff.serializer import UserTaskConverter # type: ignore
|
from SpiffWorkflow.spiff.serializer import UserTaskConverter # type: ignore
|
||||||
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
|
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
|
||||||
|
from typing import Any
|
||||||
|
from typing import Dict
|
||||||
|
from typing import List
|
||||||
|
from typing import Optional
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
|
from flask import current_app
|
||||||
|
from flask_bpmn.api.api_error import ApiError
|
||||||
|
from flask_bpmn.models.db import db
|
||||||
|
from lxml import etree # type: ignore
|
||||||
|
|
||||||
from spiffworkflow_backend.models.active_task import ActiveTaskModel
|
from spiffworkflow_backend.models.active_task import ActiveTaskModel
|
||||||
from spiffworkflow_backend.models.file import File
|
from spiffworkflow_backend.models.file import File
|
||||||
|
@ -1,13 +1,5 @@
|
|||||||
"""Process_instance_service."""
|
"""Process_instance_service."""
|
||||||
import time
|
import time
|
||||||
from typing import Any
|
|
||||||
from typing import Dict
|
|
||||||
from typing import List
|
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
from flask import current_app
|
|
||||||
from flask_bpmn.api.api_error import ApiError
|
|
||||||
from flask_bpmn.models.db import db
|
|
||||||
from SpiffWorkflow.bpmn.specs.events import EndEvent # type: ignore
|
from SpiffWorkflow.bpmn.specs.events import EndEvent # type: ignore
|
||||||
from SpiffWorkflow.bpmn.specs.events import StartEvent
|
from SpiffWorkflow.bpmn.specs.events import StartEvent
|
||||||
from SpiffWorkflow.bpmn.specs.ManualTask import ManualTask # type: ignore
|
from SpiffWorkflow.bpmn.specs.ManualTask import ManualTask # type: ignore
|
||||||
@ -19,6 +11,14 @@ from SpiffWorkflow.specs import CancelTask # type: ignore
|
|||||||
from SpiffWorkflow.specs import StartTask
|
from SpiffWorkflow.specs import StartTask
|
||||||
from SpiffWorkflow.task import Task as SpiffTask # type: ignore
|
from SpiffWorkflow.task import Task as SpiffTask # type: ignore
|
||||||
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
|
from SpiffWorkflow.util.deep_merge import DeepMerge # type: ignore
|
||||||
|
from typing import Any
|
||||||
|
from typing import Dict
|
||||||
|
from typing import List
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
from flask import current_app
|
||||||
|
from flask_bpmn.api.api_error import ApiError
|
||||||
|
from flask_bpmn.models.db import db
|
||||||
|
|
||||||
from spiffworkflow_backend.models.process_instance import ProcessInstanceApi
|
from spiffworkflow_backend.models.process_instance import ProcessInstanceApi
|
||||||
from spiffworkflow_backend.models.process_instance import ProcessInstanceModel
|
from spiffworkflow_backend.models.process_instance import ProcessInstanceModel
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from SpiffWorkflow.bpmn.parser.ValidationException import ValidationException # type: ignore
|
||||||
from typing import List
|
from typing import List
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from typing import Union
|
from typing import Union
|
||||||
@ -10,7 +11,6 @@ from flask_bpmn.api.api_error import ApiError
|
|||||||
from lxml import etree # type: ignore
|
from lxml import etree # type: ignore
|
||||||
from lxml.etree import _Element # type: ignore
|
from lxml.etree import _Element # type: ignore
|
||||||
from lxml.etree import Element as EtreeElement
|
from lxml.etree import Element as EtreeElement
|
||||||
from SpiffWorkflow.bpmn.parser.ValidationException import ValidationException # type: ignore
|
|
||||||
|
|
||||||
from spiffworkflow_backend.models.file import File
|
from spiffworkflow_backend.models.file import File
|
||||||
from spiffworkflow_backend.models.file import FileType
|
from spiffworkflow_backend.models.file import FileType
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
"""User."""
|
"""User."""
|
||||||
|
from tests.spiffworkflow_backend.helpers.example_data import ExampleDataLoader
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from tests.spiffworkflow_backend.helpers.example_data import ExampleDataLoader
|
|
||||||
|
|
||||||
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
|
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
|
||||||
ProcessEntityNotFoundError,
|
ProcessEntityNotFoundError,
|
||||||
)
|
)
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
import io
|
import io
|
||||||
import json
|
import json
|
||||||
import time
|
import time
|
||||||
|
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
|
||||||
|
from tests.spiffworkflow_backend.helpers.test_data import logged_in_headers
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
@ -10,8 +12,6 @@ import pytest
|
|||||||
from flask.app import Flask
|
from flask.app import Flask
|
||||||
from flask.testing import FlaskClient
|
from flask.testing import FlaskClient
|
||||||
from flask_bpmn.models.db import db
|
from flask_bpmn.models.db import db
|
||||||
from tests.spiffworkflow_backend.helpers.test_data import load_test_spec
|
|
||||||
from tests.spiffworkflow_backend.helpers.test_data import logged_in_headers
|
|
||||||
from werkzeug.test import TestResponse
|
from werkzeug.test import TestResponse
|
||||||
|
|
||||||
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
|
from spiffworkflow_backend.exceptions.process_entity_not_found_error import (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user