Search in sources :

Example 6 with POST

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;
}
Also used : UpdateNotificationDTO(com.odysseusinc.arachne.portal.api.v1.dto.UpdateNotificationDTO) PUT(org.springframework.web.bind.annotation.RequestMethod.PUT) GET(org.springframework.web.bind.annotation.RequestMethod.GET) POST(org.springframework.web.bind.annotation.RequestMethod.POST) IUser(com.odysseusinc.arachne.portal.model.IUser) AlreadyExistException(com.odysseusinc.arachne.portal.exception.AlreadyExistException) JsonResult(com.odysseusinc.arachne.commons.api.v1.dto.util.JsonResult) AnalysisUnlockRequest(com.odysseusinc.arachne.portal.model.AnalysisUnlockRequest) Date(java.util.Date) ApiOperation(io.swagger.annotations.ApiOperation) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 7 with POST

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);
}
Also used : PUT(org.springframework.web.bind.annotation.RequestMethod.PUT) GET(org.springframework.web.bind.annotation.RequestMethod.GET) POST(org.springframework.web.bind.annotation.RequestMethod.POST) IUser(com.odysseusinc.arachne.portal.model.IUser) ResultFileDTO(com.odysseusinc.arachne.portal.api.v1.dto.ResultFileDTO) FileDTO(com.odysseusinc.arachne.portal.api.v1.dto.FileDTO) BaseSubmissionDTO(com.odysseusinc.arachne.portal.api.v1.dto.BaseSubmissionDTO) ApproveDTO(com.odysseusinc.arachne.portal.api.v1.dto.ApproveDTO) SubmissionStatusHistoryElementDTO(com.odysseusinc.arachne.portal.api.v1.dto.SubmissionStatusHistoryElementDTO) UploadFileDTO(com.odysseusinc.arachne.portal.api.v1.dto.UploadFileDTO) CommonAnalysisExecutionStatusDTO(com.odysseusinc.arachne.commons.api.v1.dto.CommonAnalysisExecutionStatusDTO) CreateSubmissionsDTO(com.odysseusinc.arachne.portal.api.v1.dto.CreateSubmissionsDTO) SubmissionFileDTO(com.odysseusinc.arachne.portal.api.v1.dto.SubmissionFileDTO) SubmissionDTO(com.odysseusinc.arachne.portal.api.v1.dto.SubmissionDTO) BaseSubmissionAndAnalysisTypeDTO(com.odysseusinc.arachne.portal.api.v1.dto.BaseSubmissionAndAnalysisTypeDTO) JsonResult(com.odysseusinc.arachne.commons.api.v1.dto.util.JsonResult) ApiOperation(io.swagger.annotations.ApiOperation) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 8 with POST

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);
    }
}
Also used : SubmissionStatus(com.odysseusinc.arachne.portal.model.SubmissionStatus) PUT(org.springframework.web.bind.annotation.RequestMethod.PUT) GET(org.springframework.web.bind.annotation.RequestMethod.GET) POST(org.springframework.web.bind.annotation.RequestMethod.POST) ArrayList(java.util.ArrayList) Date(java.util.Date) ApiOperation(io.swagger.annotations.ApiOperation) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

ApiOperation (io.swagger.annotations.ApiOperation)8 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)8 GET (org.springframework.web.bind.annotation.RequestMethod.GET)8 POST (org.springframework.web.bind.annotation.RequestMethod.POST)8 PUT (org.springframework.web.bind.annotation.RequestMethod.PUT)8 IUser (com.odysseusinc.arachne.portal.model.IUser)7 JsonResult (com.odysseusinc.arachne.commons.api.v1.dto.util.JsonResult)5 ArrayList (java.util.ArrayList)3 CommonAnalysisExecutionStatusDTO (com.odysseusinc.arachne.commons.api.v1.dto.CommonAnalysisExecutionStatusDTO)2 ApproveDTO (com.odysseusinc.arachne.portal.api.v1.dto.ApproveDTO)2 BaseSubmissionAndAnalysisTypeDTO (com.odysseusinc.arachne.portal.api.v1.dto.BaseSubmissionAndAnalysisTypeDTO)2 BaseSubmissionDTO (com.odysseusinc.arachne.portal.api.v1.dto.BaseSubmissionDTO)2 CreateSubmissionsDTO (com.odysseusinc.arachne.portal.api.v1.dto.CreateSubmissionsDTO)2 FileDTO (com.odysseusinc.arachne.portal.api.v1.dto.FileDTO)2 ResultFileDTO (com.odysseusinc.arachne.portal.api.v1.dto.ResultFileDTO)2 SubmissionDTO (com.odysseusinc.arachne.portal.api.v1.dto.SubmissionDTO)2 SubmissionFileDTO (com.odysseusinc.arachne.portal.api.v1.dto.SubmissionFileDTO)2 SubmissionStatusHistoryElementDTO (com.odysseusinc.arachne.portal.api.v1.dto.SubmissionStatusHistoryElementDTO)2 UploadFileDTO (com.odysseusinc.arachne.portal.api.v1.dto.UploadFileDTO)2 SubmissionStatus (com.odysseusinc.arachne.portal.model.SubmissionStatus)2