Class 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)
    • 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 value
        locale - User's locale
        response - 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 for
        locale - User's locale
        response - 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 for
        locale - 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 priority
        locale - User's locale
        response - HTTP response object
        Returns:
        dto with message
      • 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 an AnalysisOutputFile.
        Parameters:
        id - AnalysisSubmission id
        fileId - AnalysisOutputFile id
        limit - Optional limit to number of lines to read from file
        start - Optional line to start reading from
        end - Optional line to stop reading at
        seek - Optional file byte position to seek to and begin reading
        chunk - Optional number of bytes to read from file
        response - 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 of JobError for an AnalysisSubmission 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 - the AnalysisSubmission 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 given AnalysisSubmission for a given Project
        Parameters:
        submissionId - the AnalysisSubmission id to share/unshare
        projectShare - 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 the AnalysisSubmission
        locale - locale of the logged in user
        response - 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 an AnalysisSubmission 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 an AnalysisSubmission
        Parameters:
        analysisSubmissionId - Id for a AnalysisSubmission
        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 specific AnalysisSubmission.
        Parameters:
        submissionId - Long id for an AnalysisSubmission
        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 specific AnalysisSubmission by file name.
        Parameters:
        submissionId - Long id for an AnalysisSubmission
        filename - String filename for an AnalysisOutputFile
        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 the AnalysisSubmission
        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 all MetadataTemplates for the AnalysisSubmission
        Parameters:
        submissionId - id of the AnalysisSubmission
        Returns:
        a map of MetadataTemplates
      • 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 the MetadataTemplate 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 output Analysis
        Parameters:
        submissionId - The analysis submission id
        locale - The users current Locale
        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 id
        filename - The name of the excel file to parse
        sheetIndex - 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 id
        filename - 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 id
        locale - 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 id
        principal - Principal User
        locale - The users current Locale
        Returns:
        dto which contains the analysis details