forked from enviPath/enviPy
wip
This commit is contained in:
@ -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)
|
||||||
|
|||||||
@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user