use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseAnalysisController method addCommonEntityToAnalysis.
@ApiOperation("Add common entity to analysis")
@RequestMapping(value = "/api/v1/analysis-management/analyses/{analysisId}/entities", method = POST)
public JsonResult addCommonEntityToAnalysis(@PathVariable("analysisId") Long analysisId, @RequestBody @Valid DataReferenceDTO entityReference, @RequestParam(value = "type", required = false, defaultValue = "COHORT") CommonAnalysisType analysisType, Principal principal) throws NotExistException, JMSException, IOException, PermissionDeniedException, URISyntaxException {
final IUser user = getUser(principal);
final DataNode dataNode = dataNodeService.getById(entityReference.getDataNodeId());
final T analysis = analysisService.getById(analysisId);
final DataReference dataReference = dataReferenceService.addOrUpdate(entityReference.getEntityGuid(), dataNode);
final List<MultipartFile> entityFiles = getEntityFiles(entityReference, dataNode, analysisType);
doAddCommonEntityToAnalysis(analysis, dataReference, user, analysisType, entityFiles);
return new JsonResult(NO_ERROR);
}
use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseAnalysisController method uploadFile.
@ApiOperation("Upload file to attach to analysis.")
@RequestMapping(value = "/api/v1/analysis-management/analyses/{analysisId}/upload", method = POST)
public JsonResult<List<AnalysisFileDTO>> uploadFile(Principal principal, @Valid UploadFileDTO uploadFileDTO, @PathVariable("analysisId") Long id) throws PermissionDeniedException, NotExistException, IOException {
IUser user = getUser(principal);
T analysis = analysisService.getById(id);
JsonResult<List<AnalysisFileDTO>> result = new JsonResult<>(NO_ERROR);
List<AnalysisFileDTO> createdFiles = new ArrayList<>();
if (uploadFileDTO.getFile() != null) {
AnalysisFile createdFile = analysisService.saveFile(uploadFileDTO.getFile(), user, analysis, uploadFileDTO.getLabel(), uploadFileDTO.getExecutable(), null);
createdFiles.add(conversionService.convert(createdFile, AnalysisFileDTO.class));
} else {
if (StringUtils.hasText(uploadFileDTO.getLink())) {
AnalysisFile createdFile = analysisService.saveFile(uploadFileDTO.getLink(), user, analysis, uploadFileDTO.getLabel(), uploadFileDTO.getExecutable());
createdFiles.add(conversionService.convert(createdFile, AnalysisFileDTO.class));
} else {
result.setErrorCode(VALIDATION_ERROR.getCode());
}
}
result.setResult(createdFiles);
return result;
}
use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseStudyController method create.
@ApiOperation("Create study.")
@RequestMapping(value = "/api/v1/study-management/studies", method = POST)
public JsonResult<SD> create(Principal principal, @RequestBody @Valid CreateStudyDTO studyDTO, BindingResult binding) throws NotExistException, NotUniqueException {
JsonResult<SD> result;
IUser user = userService.getByEmail(principal.getName());
if (user != null) {
if (binding.hasErrors()) {
result = setValidationErrors(binding);
} else {
T study = convert(studyDTO);
study = studyService.create(user, study);
result = new JsonResult<>(NO_ERROR);
result.setResult(convert(study));
}
} else {
result = new JsonResult<>(PERMISSION_DENIED);
}
return result;
}
use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseSubmissionController method createSubmission.
@ApiOperation("Create and send submission.")
@RequestMapping(value = "/api/v1/analysis-management/{analysisId}/submissions", method = POST)
public JsonResult<List<DTO>> createSubmission(Principal principal, @RequestBody @Validated CreateSubmissionsDTO createSubmissionsDTO, @PathVariable("analysisId") Long analysisId) throws PermissionDeniedException, NotExistException, IOException, NoExecutableFileException, ValidationException {
final JsonResult<List<DTO>> result;
if (principal == null) {
throw new PermissionDeniedException();
}
IUser user = userService.getByEmail(principal.getName());
if (user == null) {
throw new PermissionDeniedException();
}
Analysis analysis = analysisService.getById(analysisId);
final List<Submission> submissions = AnalysisHelper.createSubmission(submissionService, createSubmissionsDTO.getDataSources(), user, analysis);
final List<DTO> submissionDTOs = submissions.stream().map(s -> conversionService.convert(s, getSubmissionDTOClass())).collect(Collectors.toList());
result = new JsonResult<>(NO_ERROR);
result.setResult(submissionDTOs);
return result;
}
use of org.springframework.web.bind.annotation.RequestMethod.POST in project ArachneCentralAPI by OHDSI.
the class BaseAnalysisController method create.
@ApiOperation("Create analysis.")
@RequestMapping(value = "/api/v1/analysis-management/analyses", method = POST)
public JsonResult<D> create(Principal principal, @RequestBody @Valid A_C_DTO analysisDTO, BindingResult bindingResult) throws PermissionDeniedException, NotExistException, NotUniqueException {
JsonResult<D> result;
IUser user = getUser(principal);
if (bindingResult.hasErrors()) {
return setValidationErrors(bindingResult);
} else {
T analysis = conversionService.convert(analysisDTO, getAnalysisClass());
analysis.setAuthor(user);
analysis = analysisService.create(analysis);
afterCreate(analysis, analysisDTO);
result = new JsonResult<>(NO_ERROR);
result.setResult(conversionService.convert(analysis, getAnalysisDTOClass()));
}
return result;
}
Aggregations