use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseAnalysisController method sendUnlockRequest.
@ApiOperation("Send analysis unlock request")
@RequestMapping(value = "/api/v1/analysis-management/analyses/{analysisId}/unlock-request", method = POST)
public JsonResult<FileDTO> sendUnlockRequest(Principal principal, @PathVariable("analysisId") Long analysisId, @RequestBody AnalysisUnlockRequestDTO analysisUnlockRequestDTO) throws NotExistException, PermissionDeniedException, AlreadyExistException {
JsonResult result;
final IUser user = getUser(principal);
final AnalysisUnlockRequest unlockRequest = new AnalysisUnlockRequest();
unlockRequest.setUser(user);
unlockRequest.setStatus(AnalysisUnlockRequestStatus.PENDING);
unlockRequest.setCreated(new Date());
unlockRequest.setToken(UUID.randomUUID().toString().replace("-", ""));
unlockRequest.setDescription(analysisUnlockRequestDTO.getDescription());
try {
final AnalysisUnlockRequest analysisUnlockRequest = analysisService.sendAnalysisUnlockRequest(analysisId, unlockRequest);
analysisService.findLeads((T) analysisUnlockRequest.getAnalysis()).forEach(lead -> wsTemplate.convertAndSendToUser(lead.getUsername(), "/topic/invitations", new UpdateNotificationDTO()));
result = new JsonResult<>(NO_ERROR);
} catch (AlreadyExistException ex) {
result = new JsonResult<>(VALIDATION_ERROR);
result.setErrorMessage("Unlock request for the analysis was already created");
}
return result;
}
use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseSubmissionController method approveSubmission.
@ApiOperation("Approve submission for execute")
@RequestMapping(value = "/api/v1/analysis-management/submissions/{submissionId}/approve", method = POST)
public JsonResult<DTO> approveSubmission(Principal principal, @PathVariable("submissionId") Long id, @RequestBody @Valid ApproveDTO approveDTO) throws PermissionDeniedException, NotExistException, IOException {
Boolean isApproved = approveDTO.getIsApproved();
IUser user = getUser(principal);
T updatedSubmission = submissionService.approveSubmission(id, isApproved, approveDTO.getComment(), user);
DTO updatedSubmissionDTO = conversionService.convert(updatedSubmission, getSubmissionDTOClass());
return new JsonResult<>(NO_ERROR, updatedSubmissionDTO);
}
use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseSubmissionController method setStatus.
@ApiOperation("Update analysis execution status.")
@RequestMapping(value = "/api/v1/analysis-management/submissions/{submissionId}/status/{password}", method = POST)
public void setStatus(@PathVariable("submissionId") Long id, @PathVariable("password") String password, @RequestBody CommonAnalysisExecutionStatusDTO status) throws NotExistException {
final String stdoutDiff = status.getStdout();
LOGGER.debug("stdout for submission with i='{}' recieved\n{}", id, stdoutDiff);
List<SubmissionStatus> submissionStatuses = new ArrayList<SubmissionStatus>() {
{
add(SubmissionStatus.STARTING);
add(SubmissionStatus.IN_PROGRESS);
add(SubmissionStatus.QUEUE_PROCESSING);
}
};
T submission = submissionService.getSubmissionByIdAndUpdatePasswordAndStatus(id, password, submissionStatuses);
final String stdout = submission.getStdout();
submission.setStdout(stdout == null ? stdoutDiff : stdout + stdoutDiff);
submission.setStdoutDate(status.getStdoutDate());
submission.setUpdated(new Date());
if (submission.getStatus().equals(SubmissionStatus.STARTING) || submission.getStatus().equals(SubmissionStatus.QUEUE_PROCESSING)) {
submissionService.moveSubmissionToNewStatus(submission, SubmissionStatus.IN_PROGRESS, null, null);
} else {
submissionService.saveSubmission(submission);
}
}
Aggregations