Class AnalysisAjaxController
- java.lang.Object
-
- ca.corefacility.bioinformatics.irida.ria.web.analysis.AnalysisAjaxController
-
@RestController @Scope("session") @RequestMapping("/ajax/analysis") public class AnalysisAjaxController extends java.lang.Object
Controller for individual Analysis ajax requests (details page, analysis outputs, project analysis outputs)
-
-
Constructor Summary
Constructors Constructor Description AnalysisAjaxController(AnalysisSubmissionService analysisSubmissionService, IridaWorkflowsService iridaWorkflowsService, UserService userService, SampleService sampleService, ProjectService projectService, UpdateAnalysisSubmissionPermission updateAnalysisPermission, MetadataTemplateService metadataTemplateService, SequencingObjectService sequencingObjectService, AnalysisSubmissionSampleProcessor analysisSubmissionSampleProcessor, org.springframework.context.MessageSource messageSource, ExecutionManagerConfig configFile, AnalysisAudit analysisAudit, AnalysisTypesService analysisTypesService, EmailController emailController, UpdateSamplePermission updateSamplePermission)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AnalysisInputFiles
ajaxGetAnalysisInputFiles(java.lang.Long submissionId, java.util.Locale locale)
Get analysis input files and their sizesAnalysisDetails
ajaxGetDataForDetailsTab(java.lang.Long submissionId, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Get analysis detailsAnalysisJobError
ajaxGetJobErrors(java.lang.Long submissionId)
Get a dto with list ofJobError
for anAnalysisSubmission
under key `galaxyJobErrors` and the `galaxyUrl` for the galaxy instanceResponseDetails
ajaxUpdateEmailPipelineResult(AnalysisEmailPipelineResult parameters, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Update an analysis email pipeline completion resultResponseDetails
ajaxUpdateSubmission(AnalysisSubmissionInfo parameters, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Update an analysis name and/or priorityjava.util.Map<java.lang.String,java.lang.String>
deleteAjaxAnalysisSubmission(java.lang.Long analysisSubmissionId, java.util.Locale locale)
Delete anAnalysisSubmission
by id.void
getAjaxDownloadAnalysisSubmission(java.lang.Long analysisSubmissionId, javax.servlet.http.HttpServletResponse response)
Download all output files from anAnalysisSubmission
org.springframework.http.ResponseEntity<AnalysisInfo>
getAnalysisInfo(java.lang.Long submissionId, java.security.Principal principal, java.util.Locale locale)
Get the analysis detailsorg.springframework.http.ResponseEntity<java.lang.String>
getImageFile(java.lang.Long submissionId, java.lang.String filename)
Get an image file associated with a specificAnalysisSubmission
by file name.java.util.Map<java.lang.String,java.lang.Object>
getMetadataForAnalysisSamples(java.lang.Long submissionId)
Get the metadata associated with a template for an analysis.java.util.Map<java.lang.String,java.lang.Object>
getMetadataTemplateFields(java.lang.Long templateId)
Generates a list of metadata fields for a five template.java.util.Map<java.lang.String,java.lang.Object>
getMetadataTemplatesForAnalysis(java.lang.Long submissionId)
Get a list of allMetadataTemplate
s for theAnalysisSubmission
java.util.Map<java.lang.String,java.lang.Object>
getNewickForAnalysis(java.lang.Long submissionId)
Get a newick file associated with a specificAnalysisSubmission
.AnalysisTreeResponse
getNewickTree(java.lang.Long submissionId, java.util.Locale locale)
Construct the model parameters for results with a newick outputAnalysis
AnalysisOutputFileInfo
getOutputFile(java.lang.Long id, java.lang.Long fileId, java.lang.Long limit, java.lang.Long start, java.lang.Long end, java.lang.Long seek, java.lang.Long chunk, javax.servlet.http.HttpServletResponse response)
Read some lines or text from anAnalysisOutputFile
.java.util.List<AnalysisOutputFileInfo>
getOutputFilesInfo(java.lang.Long id)
For anAnalysisSubmission
, get info about eachAnalysisOutputFile
AnalysisProvenanceResponse
getProvenanceByFile(java.lang.Long submissionId, java.lang.String filename)
Get the full analysis provenancejava.util.List<ca.corefacility.bioinformatics.irida.ria.web.analysis.AnalysisAjaxController.SharedProjectResponse>
getSharedProjectsForAnalysis(java.lang.Long submissionId)
Get the status of projects that can be shared with the given analysisAnalysisSistrResults
getSistrAnalysis(java.lang.Long id)
Get the sistr analysis information to displayorg.springframework.http.ResponseEntity<UpdatedAnalysisProgress>
getUpdatedProgress(java.lang.Long submissionId, java.util.Locale locale)
Get the updated state and duration of an analysisExcelData
parseExcelFile(java.lang.Long submissionId, java.lang.String filename, java.lang.Integer sheetIndex)
Parse excel file and return an ExcelData dto which contains the row data as well as the headers.ResponseDetails
saveResultsToSamples(java.lang.Long submissionId, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Save the results of an analysis back to the samplesResponseDetails
updateProjectShare(java.lang.Long submissionId, AnalysisProjectShare projectShare, java.util.Locale locale)
Update the share status of a givenAnalysisSubmission
for a givenProject
-
-
-
Constructor Detail
-
AnalysisAjaxController
@Autowired public AnalysisAjaxController(AnalysisSubmissionService analysisSubmissionService, IridaWorkflowsService iridaWorkflowsService, UserService userService, SampleService sampleService, ProjectService projectService, UpdateAnalysisSubmissionPermission updateAnalysisPermission, MetadataTemplateService metadataTemplateService, SequencingObjectService sequencingObjectService, AnalysisSubmissionSampleProcessor analysisSubmissionSampleProcessor, org.springframework.context.MessageSource messageSource, ExecutionManagerConfig configFile, AnalysisAudit analysisAudit, AnalysisTypesService analysisTypesService, EmailController emailController, UpdateSamplePermission updateSamplePermission)
-
-
Method Detail
-
ajaxUpdateEmailPipelineResult
@RequestMapping(value="/update-email-pipeline-result", method=PATCH) public ResponseDetails ajaxUpdateEmailPipelineResult(@RequestBody AnalysisEmailPipelineResult parameters, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Update an analysis email pipeline completion result- Parameters:
parameters
- parameters which include the submission id and the new email pipeline result valuelocale
- User's localeresponse
- HTTP response object- Returns:
- dto with message
-
ajaxGetDataForDetailsTab
@RequestMapping(value="/details/{submissionId}", method=GET) public AnalysisDetails ajaxGetDataForDetailsTab(@PathVariable java.lang.Long submissionId, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Get analysis details- Parameters:
submissionId
- analysis submission id to get data forlocale
- User's localeresponse
- HTTP response object- Returns:
- dto of analysis details
-
ajaxGetAnalysisInputFiles
@RequestMapping(value="/inputs/{submissionId}", method=GET) public AnalysisInputFiles ajaxGetAnalysisInputFiles(@PathVariable java.lang.Long submissionId, java.util.Locale locale)
Get analysis input files and their sizes- Parameters:
submissionId
- analysis submission id to get data forlocale
- User's locale- Returns:
- dto of analysis input files data
-
ajaxUpdateSubmission
@RequestMapping(value="/update-analysis", method=PATCH) public ResponseDetails ajaxUpdateSubmission(@RequestBody AnalysisSubmissionInfo parameters, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Update an analysis name and/or priority- Parameters:
parameters
- parameters which include the submission id and the new name and/or prioritylocale
- User's localeresponse
- HTTP response object- Returns:
- dto with message
-
getOutputFilesInfo
@RequestMapping(value="/{id}/outputs", method=GET) @ResponseBody public java.util.List<AnalysisOutputFileInfo> getOutputFilesInfo(@PathVariable java.lang.Long id)
For anAnalysisSubmission
, get info about eachAnalysisOutputFile
- Parameters:
id
-AnalysisSubmission
id- Returns:
- map of info about each
AnalysisOutputFile
-
getOutputFile
@RequestMapping(value="/{id}/outputs/{fileId}", method=GET) @ResponseBody public AnalysisOutputFileInfo getOutputFile(@PathVariable java.lang.Long id, @PathVariable java.lang.Long fileId, @RequestParam(defaultValue="100",required=false) java.lang.Long limit, @RequestParam(required=false) java.lang.Long start, @RequestParam(required=false) java.lang.Long end, @RequestParam(defaultValue="0",required=false) java.lang.Long seek, @RequestParam(required=false) java.lang.Long chunk, javax.servlet.http.HttpServletResponse response)
Read some lines or text from anAnalysisOutputFile
.- Parameters:
id
-AnalysisSubmission
idfileId
-AnalysisOutputFile
idlimit
- Optional limit to number of lines to read from filestart
- Optional line to start reading fromend
- Optional line to stop reading atseek
- Optional file byte position to seek to and begin readingchunk
- Optional number of bytes to read from fileresponse
- HTTP response object- Returns:
- JSON with file text or lines as well as information about the file.
-
ajaxGetJobErrors
@RequestMapping(value="/{submissionId}/job-errors", method=GET) @ResponseBody public AnalysisJobError ajaxGetJobErrors(@PathVariable java.lang.Long submissionId)
Get a dto with list ofJobError
for anAnalysisSubmission
under key `galaxyJobErrors` and the `galaxyUrl` for the galaxy instance- Parameters:
submissionId
-AnalysisSubmission
id- Returns:
- dto with galaxyJobErrors and galaxyUrl
-
getSharedProjectsForAnalysis
@RequestMapping(value="/{submissionId}/share", method=GET) @ResponseBody public java.util.List<ca.corefacility.bioinformatics.irida.ria.web.analysis.AnalysisAjaxController.SharedProjectResponse> getSharedProjectsForAnalysis(@PathVariable java.lang.Long submissionId)
Get the status of projects that can be shared with the given analysis- Parameters:
submissionId
- theAnalysisSubmission
id- Returns:
- a list of
AnalysisAjaxController.SharedProjectResponse
-
updateProjectShare
@RequestMapping(value="/{submissionId}/share", method=POST) public ResponseDetails updateProjectShare(@PathVariable java.lang.Long submissionId, @RequestBody AnalysisProjectShare projectShare, java.util.Locale locale)
Update the share status of a givenAnalysisSubmission
for a givenProject
- Parameters:
submissionId
- theAnalysisSubmission
id to share/unshareprojectShare
-AnalysisProjectShare
describes of the project and the share status.locale
- Locale of the logged in user- Returns:
- Success message if successful
-
saveResultsToSamples
@RequestMapping(value="/{submissionId}/save-results", method=POST) @ResponseBody public ResponseDetails saveResultsToSamples(@PathVariable java.lang.Long submissionId, java.util.Locale locale, javax.servlet.http.HttpServletResponse response)
Save the results of an analysis back to the samples- Parameters:
submissionId
- ID of theAnalysisSubmission
locale
- locale of the logged in userresponse
- HTTP response object- Returns:
- success message
-
getSistrAnalysis
@RequestMapping("/sistr/{id}") @ResponseBody public AnalysisSistrResults getSistrAnalysis(@PathVariable java.lang.Long id)
Get the sistr analysis information to display- Parameters:
id
- ID of the analysis submission- Returns:
- dto with SISTR analysis results
-
deleteAjaxAnalysisSubmission
@RequestMapping("/delete/{analysisSubmissionId}") @ResponseBody public java.util.Map<java.lang.String,java.lang.String> deleteAjaxAnalysisSubmission(@PathVariable java.lang.Long analysisSubmissionId, java.util.Locale locale)
Delete anAnalysisSubmission
by id.- Parameters:
analysisSubmissionId
- the submission ID to delete.locale
- Locale of the logged in user- Returns:
- A message stating the submission was deleted
-
getAjaxDownloadAnalysisSubmission
@RequestMapping(value="/download/{analysisSubmissionId}", produces="application/json") public void getAjaxDownloadAnalysisSubmission(@PathVariable java.lang.Long analysisSubmissionId, javax.servlet.http.HttpServletResponse response)
Download all output files from anAnalysisSubmission
- Parameters:
analysisSubmissionId
- Id for aAnalysisSubmission
response
-HttpServletResponse
-
getNewickForAnalysis
@RequestMapping("/{submissionId}/newick") @ResponseBody public java.util.Map<java.lang.String,java.lang.Object> getNewickForAnalysis(@PathVariable java.lang.Long submissionId) throws java.io.IOException
Get a newick file associated with a specificAnalysisSubmission
.- Parameters:
submissionId
-Long
id for anAnalysisSubmission
- Returns:
Map
containing the newick file contents.- Throws:
java.io.IOException
-IOException
if the newick file is not found
-
getImageFile
@RequestMapping("{submissionId}/image") @ResponseBody public org.springframework.http.ResponseEntity<java.lang.String> getImageFile(@PathVariable java.lang.Long submissionId, java.lang.String filename)
Get an image file associated with a specificAnalysisSubmission
by file name.- Parameters:
submissionId
-Long
id for anAnalysisSubmission
filename
-String
filename for anAnalysisOutputFile
- Returns:
String
containing the image file contents as a base64 encoded string.
-
getMetadataForAnalysisSamples
@RequestMapping("/{submissionId}/metadata") @ResponseBody public java.util.Map<java.lang.String,java.lang.Object> getMetadataForAnalysisSamples(@PathVariable java.lang.Long submissionId)
Get the metadata associated with a template for an analysis.- Parameters:
submissionId
-Long
identifier for theAnalysisSubmission
- Returns:
Map
-
getMetadataTemplatesForAnalysis
@RequestMapping("/{submissionId}/metadata-templates") @ResponseBody public java.util.Map<java.lang.String,java.lang.Object> getMetadataTemplatesForAnalysis(@PathVariable java.lang.Long submissionId)
Get a list of allMetadataTemplate
s for theAnalysisSubmission
- Parameters:
submissionId
- id of theAnalysisSubmission
- Returns:
- a map of
MetadataTemplate
s
-
getMetadataTemplateFields
@RequestMapping("/{submissionId}/metadata-template-fields") @ResponseBody public java.util.Map<java.lang.String,java.lang.Object> getMetadataTemplateFields(@RequestParam java.lang.Long templateId)
Generates a list of metadata fields for a five template.- Parameters:
templateId
-Long
id for theMetadataTemplate
that the fields are required.- Returns:
Map
-
getNewickTree
@RequestMapping("/{submissionId}/tree") public AnalysisTreeResponse getNewickTree(@PathVariable java.lang.Long submissionId, java.util.Locale locale) throws java.io.IOException
Construct the model parameters for results with a newick outputAnalysis
- Parameters:
submissionId
- The analysis submission idlocale
- The users currentLocale
- Returns:
- dto which contains the newick string and an optional message
- Throws:
java.io.IOException
- If the tree file couldn't be read
-
parseExcelFile
@RequestMapping("/{submissionId}/parseExcel") @ResponseBody public ExcelData parseExcelFile(@PathVariable java.lang.Long submissionId, java.lang.String filename, java.lang.Integer sheetIndex)
Parse excel file and return an ExcelData dto which contains the row data as well as the headers.- Parameters:
submissionId
- The analysis submission idfilename
- The name of the excel file to parsesheetIndex
- The index of the sheet in the excel workbook to parse- Returns:
- dto which contains the headers and rows of the excel file
-
getProvenanceByFile
@RequestMapping("/{submissionId}/provenance") @ResponseBody public AnalysisProvenanceResponse getProvenanceByFile(@PathVariable java.lang.Long submissionId, java.lang.String filename)
Get the full analysis provenance- Parameters:
submissionId
- The analysis submission idfilename
- The name of the file for which to get the provenance- Returns:
- dto which contains the file provenance
-
getUpdatedProgress
@RequestMapping("/{submissionId}/updated-progress") public org.springframework.http.ResponseEntity<UpdatedAnalysisProgress> getUpdatedProgress(@PathVariable java.lang.Long submissionId, java.util.Locale locale)
Get the updated state and duration of an analysis- Parameters:
submissionId
- The analysis submission idlocale
- The user's locale- Returns:
- dto which contains the updated analysis state and duration
-
getAnalysisInfo
@RequestMapping("/{submissionId}/analysis-details") public org.springframework.http.ResponseEntity<AnalysisInfo> getAnalysisInfo(@PathVariable java.lang.Long submissionId, java.security.Principal principal, java.util.Locale locale)
Get the analysis details- Parameters:
submissionId
- The analysis submission idprincipal
- PrincipalUser
locale
- The users currentLocale
- Returns:
- dto which contains the analysis details
-
-