|
3 | 3 | import gov.nist.oar.distrib.service.RPACachingService; |
4 | 4 | import gov.nist.oar.distrib.service.rpa.RPARequestHandler; |
5 | 5 | import gov.nist.oar.distrib.service.rpa.RecordCreationResult; |
| 6 | +import gov.nist.oar.distrib.service.rpa.RecordUpdateResult; |
6 | 7 | import gov.nist.oar.distrib.service.rpa.exceptions.InvalidRequestException; |
7 | 8 | import gov.nist.oar.distrib.service.rpa.exceptions.RecaptchaClientException; |
8 | 9 | import gov.nist.oar.distrib.service.rpa.exceptions.RecaptchaServerException; |
@@ -398,12 +399,18 @@ public ResponseEntity<RecordStatus> updateRecord(@PathVariable String id, @Reque |
398 | 399 | if (tokenDetails != null) { |
399 | 400 | LOGGER.debug("Updating record with ID: {}", id); |
400 | 401 | String smeId = tokenDetails.get("userEmail"); |
401 | | - RecordStatus recordStatus = service.updateRecord(id, patch.getApprovalStatus(), smeId); |
| 402 | + RecordUpdateResult result = service.updateRecord(id, patch.getApprovalStatus(), smeId); |
| 403 | + |
| 404 | + // Trigger async post-processing (caching, email notifications) |
| 405 | + asyncExecutor.handleAfterRecordUpdateAsync( |
| 406 | + result.getRecord(), |
| 407 | + patch.getApprovalStatus(), |
| 408 | + result.getDatasetId()); |
402 | 409 |
|
403 | 410 | logUpdateAction(tokenDetails, id); |
404 | 411 |
|
405 | 412 | LOGGER.debug("Record successfully updated"); |
406 | | - return new ResponseEntity<RecordStatus>(recordStatus, HttpStatus.OK); |
| 413 | + return new ResponseEntity<RecordStatus>(result.getRecordStatus(), HttpStatus.OK); |
407 | 414 | } else { |
408 | 415 | LOGGER.error("Token is invalid"); |
409 | 416 | throw new UnauthorizedException("invalid token"); |
|
0 commit comments