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 BaseController
This 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 void
createJasperReportTemplate(org.springframework.web.multipart.MultipartFile file, java.lang.String name, java.lang.String description)
Adding report templates with ".jrxml" format to database.void
deleteTemplate(java.util.UUID templateId)
Allows deleting template from db with given id.void
generateReport(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.Object
generateReportIfModified(java.util.UUID templateId, long version)
Generate a report based on the template and request parameters.JasperTemplateDto
getTemplate(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.IOException
Generate 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 creatingExporter
net.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.IOException
Generate 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 creatingExporter
net.sf.jasperreports.engine.JRException
- if there is an error while creatingJasperReport
-
-