use of org.hisp.dhis.dxf2.webmessage.WebMessageException in project dhis2-core by dhis2.
the class InterpretationController method postComment.
// -------------------------------------------------------------------------
// Comment
// -------------------------------------------------------------------------
@RequestMapping(value = "/{uid}/comments", method = RequestMethod.POST, consumes = { "text/html", "text/plain" })
public void postComment(@PathVariable("uid") String uid, @RequestBody String text, HttpServletResponse response, HttpServletRequest request) throws WebMessageException {
Interpretation interpretation = interpretationService.getInterpretation(uid);
if (interpretation == null) {
throw new WebMessageException(WebMessageUtils.conflict("Interpretation does not exist: " + uid));
}
InterpretationComment comment = interpretationService.addInterpretationComment(uid, text);
String builder = InterpretationSchemaDescriptor.API_ENDPOINT + "/" + uid + "/comments/" + comment.getUid();
response.addHeader("Location", builder);
webMessageService.send(WebMessageUtils.created("Commented created"), response, request);
}
use of org.hisp.dhis.dxf2.webmessage.WebMessageException in project dhis2-core by dhis2.
the class InterpretationController method deleteComment.
@RequestMapping(value = "/{uid}/comments/{cuid}", method = RequestMethod.DELETE)
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteComment(@PathVariable("uid") String uid, @PathVariable("cuid") String cuid, HttpServletResponse response) throws WebMessageException {
Interpretation interpretation = interpretationService.getInterpretation(uid);
if (interpretation == null) {
throw new WebMessageException(WebMessageUtils.conflict("Interpretation does not exist: " + uid));
}
Iterator<InterpretationComment> iterator = interpretation.getComments().iterator();
while (iterator.hasNext()) {
InterpretationComment comment = iterator.next();
if (comment.getUid().equals(cuid)) {
if (!currentUserService.getCurrentUser().equals(comment.getUser()) && !currentUserService.currentUserIsSuper()) {
throw new AccessDeniedException("You are not allowed to delete this comment.");
}
iterator.remove();
}
}
interpretationService.updateInterpretation(interpretation);
}
use of org.hisp.dhis.dxf2.webmessage.WebMessageException in project dhis2-core by dhis2.
the class InterpretationController method deleteObject.
@Override
public void deleteObject(@PathVariable String uid, HttpServletRequest request, HttpServletResponse response) throws Exception {
Interpretation interpretation = interpretationService.getInterpretation(uid);
if (interpretation == null) {
throw new WebMessageException(WebMessageUtils.notFound("Interpretation does not exist: " + uid));
}
if (!currentUserService.getCurrentUser().equals(interpretation.getUser()) && !currentUserService.currentUserIsSuper()) {
throw new AccessDeniedException("You are not allowed to delete this interpretation.");
}
interpretationService.deleteInterpretation(interpretation);
}
use of org.hisp.dhis.dxf2.webmessage.WebMessageException in project dhis2-core by dhis2.
the class InterpretationController method unlike.
@RequestMapping(value = "/{uid}/like", method = RequestMethod.DELETE)
public void unlike(@PathVariable("uid") String uid, HttpServletResponse response, HttpServletRequest request) throws WebMessageException {
Interpretation interpretation = interpretationService.getInterpretation(uid);
if (interpretation == null) {
throw new WebMessageException(WebMessageUtils.conflict("Interpretation does not exist: " + uid));
}
boolean like = interpretationService.unlikeInterpretation(interpretation.getId());
if (like) {
webMessageService.send(WebMessageUtils.created("Like removed from interpretation"), response, request);
} else {
webMessageService.send(WebMessageUtils.conflict("Could not remove like, user had not previously liked interpretation"), response, request);
}
}
use of org.hisp.dhis.dxf2.webmessage.WebMessageException in project dhis2-core by dhis2.
the class InterpretationController method writeDataSetReportInterpretation.
@RequestMapping(value = "/dataSetReport/{uid}", method = RequestMethod.POST, consumes = { "text/html", "text/plain" })
public void writeDataSetReportInterpretation(@PathVariable("uid") String dataSetUid, @RequestParam("pe") String isoPeriod, @RequestParam("ou") String orgUnitUid, @RequestBody String text, HttpServletResponse response, HttpServletRequest request) throws WebMessageException {
DataSet dataSet = idObjectManager.get(DataSet.class, dataSetUid);
if (dataSet == null) {
throw new WebMessageException(WebMessageUtils.conflict("Data set does not exist or is not accessible: " + dataSetUid));
}
Period period = PeriodType.getPeriodFromIsoString(isoPeriod);
if (period == null) {
throw new WebMessageException(WebMessageUtils.conflict("Period identifier not valid: " + isoPeriod));
}
OrganisationUnit orgUnit = idObjectManager.get(OrganisationUnit.class, orgUnitUid);
if (orgUnit == null) {
throw new WebMessageException(WebMessageUtils.conflict("Organisation unit does not exist or is not accessible: " + orgUnitUid));
}
createIntepretation(new Interpretation(dataSet, period, orgUnit, text), request, response);
}
Aggregations