wip
Some checks failed
API CI / api-tests (pull_request) Failing after 25s
CI / test (pull_request) Failing after 25s

This commit is contained in:
Tim Lorsbach
2026-07-19 23:25:36 +02:00
parent 3409a17ab8
commit 7e9f194425
2 changed files with 23 additions and 39 deletions

View File

@ -1,4 +1,5 @@
import base64 import base64
import logging
import requests import requests
from django.conf import settings as s from django.conf import settings as s
@ -14,6 +15,9 @@ from utilities.decorators import package_permission_required
Package = s.GET_PACKAGE_MODEL() Package = s.GET_PACKAGE_MODEL()
logger = logging.getLogger(__name__)
@package_permission_required() @package_permission_required()
def create_pes(request, package_uuid): def create_pes(request, package_uuid):
current_user = _anonymous_or_real(request) current_user = _anonymous_or_real(request)
@ -52,20 +56,12 @@ def create_pes(request, package_uuid):
"Cannot create secret PESs in non-secret packages." "Cannot create secret PESs in non-secret packages."
) )
data_pools = pes_data.get("dataPools") if not current_package.data_pool or not current_package.data_pool.secret:
if data_pools: logger.info(f"The current package does not have a secret data pool.")
if (current_package.data_pool.name not in s.DATA_POOL_MAPPING
or s.DATA_POOL_MAPPING[current_package.data_pool.name] not in data_pools):
if current_package.data_pool.name not in s.DATA_POOL_MAPPING:
detail = f"Data pool {current_package.data_pool.name} not found in Mapping."
else:
detail = f"PES data pool {s.DATA_POOL_MAPPING[current_package.data_pool.name]} not found in PES data"
return error( return error(
request, request,
"Invalid PES data", "The current package does not have a secret data pool.",
detail "Cannot create secret PESs in package without a secret data pool."
) )
pes = PESCompound.create(current_package, pes_data, compound_name, compound_description) pes = PESCompound.create(current_package, pes_data, compound_name, compound_description)
@ -120,20 +116,12 @@ def create_pes_node(request, package_uuid, pathway_uuid):
"Cannot create secret PESs in non-secret packages." "Cannot create secret PESs in non-secret packages."
) )
data_pools = pes_data.get("dataPools") if not current_package.data_pool or not current_package.data_pool.secret:
if data_pools: logger.info(f"The current package does not have a secret data pool.")
if (current_package.data_pool.name not in s.DATA_POOL_MAPPING
or s.DATA_POOL_MAPPING[current_package.data_pool.name] not in data_pools):
if current_package.data_pool.name not in s.DATA_POOL_MAPPING:
detail = f"Data pool {current_package.data_pool.name} not found in Mapping."
else:
detail = f"PES data pool {s.DATA_POOL_MAPPING[current_package.data_pool.name]} not found in PES data"
return error( return error(
request, request,
"Invalid PES data", "The current package does not have a secret data pool.",
detail "Cannot create secret PESs in package without a secret data pool."
) )
pes = PESCompound.create(current_package, pes_data, compound_name, compound_description) pes = PESCompound.create(current_package, pes_data, compound_name, compound_description)

View File

@ -1705,7 +1705,7 @@ class PathwayNode(Schema):
image: str = Field(None, alias="image") image: str = Field(None, alias="image")
imageSize: int = Field(None, alias="image_size") imageSize: int = Field(None, alias="image_size")
name: str = Field(None, alias="name") name: str = Field(None, alias="name")
proposed: List[Dict[str, str]] = [] proposed: List[Dict[str, Any]] = []
smiles: str = Field(None, alias="smiles") smiles: str = Field(None, alias="smiles")
pseudo: bool = Field(False, alias="pseudo") pseudo: bool = Field(False, alias="pseudo")
pesLink: str | None = Field(None, alias="pes_link") pesLink: str | None = Field(None, alias="pes_link")
@ -1975,7 +1975,7 @@ def get_package_pathway_node(request, package_uuid, pathway_uuid, node_uuid):
class CreateNode(Schema): class CreateNode(Schema):
nodeAsSmiles: str nodeAsSmiles: str | None = None
nodeAsMolFile: str | None = None nodeAsMolFile: str | None = None
nodeName: str | None = None nodeName: str | None = None
nodeReason: str | None = None nodeReason: str | None = None
@ -2007,14 +2007,10 @@ def add_pathway_node(request, package_uuid, pathway_uuid, n: Form[CreateNode]):
if "secret" == classification.lower(): if "secret" == classification.lower():
if p.classification_level != Package.Classification.SECRET: if p.classification_level != Package.Classification.SECRET:
return 400, "Cannot create PESs for non-secret packages." return 400, {"message": "Cannot create secret PESs in non-secret packages."}
data_pools = pes_data.get("dataPools") if not p.data_pool or not p.data_pool.secret:
if data_pools: return 400, {"message": "Cannot create secret PESs in package without a secret data pool."}
if s.DATA_POOL_MAPPING[p.data_pool.name] not in data_pools:
return 400, {
"messsage": f"PES data pool {s.DATA_POOL_MAPPING[p.data_pool.name]} not found in PES data"
}
c = PESCompound.create(p, pes_data, n.nodeName, n.nodeReason) c = PESCompound.create(p, pes_data, n.nodeName, n.nodeReason)