Package org.motechproject.mots.web
Class JasperTemplateController
- java.lang.Object
-
- org.motechproject.mots.web.BaseController
-
- org.motechproject.mots.web.JasperTemplateController
-
@Controller @Transactional @RequestMapping("/api/reports/templates") public class JasperTemplateController extends BaseControllerThis class is responsible for manipulation of Jasper report files.
-
-
Constructor Summary
Constructors Constructor Description JasperTemplateController()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreateJasperReportTemplate(org.springframework.web.multipart.MultipartFile file, java.lang.String name, java.lang.String description)Adding report templates with ".jrxml" format to database.voiddeleteTemplate(java.util.UUID templateId)Allows deleting template from db with given id.voidgenerateReport(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.util.UUID templateId, java.lang.String format)Generate a report based on the template, the format and the request parameters.java.lang.ObjectgenerateReportIfModified(java.util.UUID templateId, long version)Generate a report based on the template and request parameters.JasperTemplateDtogetTemplate(java.util.UUID templateId)Get template from db with given id.java.util.List<JasperTemplateDto>getVisibleTemplates()Get visible templatesJasperTemplateDto.-
Methods inherited from class org.motechproject.mots.web.BaseController
checkBindingResult, getErrors
-
-
-
-
Method Detail
-
createJasperReportTemplate
@RequestMapping(method=POST) @ResponseStatus(OK) public void createJasperReportTemplate(@RequestPart("file") org.springframework.web.multipart.MultipartFile file, java.lang.String name, java.lang.String description)Adding report templates with ".jrxml" format to database.- Parameters:
file- File in ".jrxml" format to uploadname- Name of file in databasedescription- Description of the file
-
getVisibleTemplates
@RequestMapping(method=GET) @ResponseStatus(OK) @ResponseBody public java.util.List<JasperTemplateDto> getVisibleTemplates()
Get visible templatesJasperTemplateDto.- Returns:
- Templates.
-
getTemplate
@RequestMapping(value="/{id}", method=GET) @ResponseStatus(OK) @ResponseBody public JasperTemplateDto getTemplate(@PathVariable("id") java.util.UUID templateId)Get template from db with given id.- Parameters:
templateId- UUID of template which we want to get- Returns:
- template with given id or throws error if not found.
- Throws:
EntityNotFoundException- if template is missing
-
deleteTemplate
@RequestMapping(value="/{id}", method=DELETE) @ResponseStatus(NO_CONTENT) public void deleteTemplate(@PathVariable("id") java.util.UUID templateId)Allows deleting template from db with given id.- Parameters:
templateId- UUID of template which we want to delete- Throws:
EntityNotFoundException- if jasper template is missing
-
generateReport
@RequestMapping(value="/{id}/{format}", method=GET) public void generateReport(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, @PathVariable("id") java.util.UUID templateId, @PathVariable("format") java.lang.String format) throws java.sql.SQLException, net.sf.jasperreports.engine.JRException, java.io.IOExceptionGenerate a report based on the template, the format and the request parameters.- Parameters:
request- request (to get the request parameters)templateId- report template IDformat- report format to generate, default is PDFresponse- response object used to set proper headers- Throws:
java.sql.SQLException- if there is an error while connecting to dbjava.io.IOException- if there is an error while creatingExporternet.sf.jasperreports.engine.JRException- if there is an error while creatingJasperReport
-
generateReportIfModified
@RequestMapping(value="/{id}/json/versioned", method=GET, produces="application/json") @ResponseBody public java.lang.Object generateReportIfModified(@PathVariable("id") java.util.UUID templateId, @RequestParam("version") long version) throws java.sql.SQLException, net.sf.jasperreports.engine.JRException, java.io.IOExceptionGenerate a report based on the template and request parameters. Return the generated report only if its version has changed- Parameters:
templateId- report template IDversion- a version (timestamp) of the report- Returns:
- the generated report along with its version
- Throws:
java.sql.SQLException- if there is an error while connecting to dbjava.io.IOException- if there is an error while creatingExporternet.sf.jasperreports.engine.JRException- if there is an error while creatingJasperReport
-
-