Skip to content

Commit

Permalink
add check for if task results are string and parse JSON
Browse files Browse the repository at this point in the history
  • Loading branch information
dpgraham4401 committed Oct 26, 2023
1 parent 778c188 commit d471ffb
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 10 deletions.
5 changes: 4 additions & 1 deletion client/src/components/Manifest/UpdateRcra/UpdateRcra.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ export function UpdateRcra({ taskId }: UpdateRcraProps) {
});

if (data?.status === 'SUCCESS') {
const resp = data?.result;
let resp = data?.result;
if (typeof resp === 'string') {
resp = JSON.parse(resp);
}
return <Navigate to={`/manifest/${resp.manifestTrackingNumber}/view`} />;
}

Expand Down
9 changes: 3 additions & 6 deletions server/apps/trak/models/manifest_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,9 @@ def draft_mtn():
A callable that returns a timestamped draft MTN in lieu of an
official MTN from e-Manifest
"""
manifests = Manifest.objects.all()
if not manifests:
max_id = 1
else:
max_id = manifests.aggregate(Max("id"))
return f"{str(max_id).zfill(9)}DFT"
mtn_count: int = Manifest.objects.all().count()
print(mtn_count)
return f"{str(mtn_count).zfill(9)}DFT"


def validate_mtn(value):
Expand Down
7 changes: 7 additions & 0 deletions server/apps/trak/serializers/manifest_ser.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
CorrectionInfo,
ImportInfo,
PortOfEntry,
draft_mtn,
)
from apps.trak.serializers.handler_ser import HandlerSerializer
from apps.trak.serializers.signature_ser import ESignatureSerializer
Expand Down Expand Up @@ -221,6 +222,12 @@ def update(self, instance, validated_data: Dict) -> Manifest:
def create(self, validated_data: Dict) -> Manifest:
return self.Meta.model.objects.save(**validated_data)

def validate(self, data):
if data["mtn"] == "" and data["status"] == "NotAssigned":
data["mtn"] = draft_mtn()
print("data", data)
return super().validate(data)

# https://www.django-rest-framework.org/api-guide/serializers/#overriding-serialization-and-deserialization-behavior
def to_representation(self, instance) -> str:
"""
Expand Down
2 changes: 1 addition & 1 deletion server/apps/trak/tasks/manifest_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def create_rcra_manifest(self, *, manifest: dict, username: str):
except ManifestServiceError as exc:
logger.error(f"failed to create manifest ({manifest}): {exc.message}")
task_status.update_task_status(status="FAILURE", results=exc.message)
return exc
return {"error": exc.message}
except Exception as exc:
logger.error("error: ", exc)
task_status.update_task_status(status="FAILURE", results={"result": str(exc)})
Expand Down
2 changes: 0 additions & 2 deletions server/fixtures/dev_data.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,6 @@
pk: 1
fields:
user: 2
rcra_api_key: mockRcraKey
rcra_api_id: mockRcraInfoId
rcra_username: dpgraham4401
phone_number: null
email: [email protected]
Expand Down

0 comments on commit d471ffb

Please sign in to comment.