use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class TrackedEntityInstanceSupportService method getTrackedEntityInstance.
@SneakyThrows
public TrackedEntityInstance getTrackedEntityInstance(String id, String pr, List<String> fields) {
User user = currentUserService.getCurrentUser();
TrackedEntityInstanceParams trackedEntityInstanceParams = getTrackedEntityInstanceParams(fields);
TrackedEntityInstance trackedEntityInstance = trackedEntityInstanceService.getTrackedEntityInstance(id, trackedEntityInstanceParams);
if (trackedEntityInstance == null) {
throw new NotFoundException("TrackedEntityInstance", id);
}
if (pr != null) {
Program program = programService.getProgram(pr);
if (program == null) {
throw new NotFoundException("Program", pr);
}
List<String> errors = trackerAccessManager.canRead(user, instanceService.getTrackedEntityInstance(trackedEntityInstance.getTrackedEntityInstance()), program, false);
if (!errors.isEmpty()) {
if (program.getAccessLevel() == AccessLevel.CLOSED) {
throw new WebMessageException(unauthorized(TrackerOwnershipManager.PROGRAM_ACCESS_CLOSED));
}
throw new WebMessageException(unauthorized(TrackerOwnershipManager.OWNERSHIP_ACCESS_DENIED));
}
if (trackedEntityInstanceParams.isIncludeProgramOwners()) {
List<ProgramOwner> filteredProgramOwners = trackedEntityInstance.getProgramOwners().stream().filter(tei -> tei.getProgram().equals(pr)).collect(Collectors.toList());
trackedEntityInstance.setProgramOwners(filteredProgramOwners);
}
} else {
// return only tracked entity type attributes
TrackedEntityType trackedEntityType = trackedEntityTypeService.getTrackedEntityType(trackedEntityInstance.getTrackedEntityType());
if (trackedEntityType != null) {
List<String> tetAttributes = trackedEntityType.getTrackedEntityAttributes().stream().map(TrackedEntityAttribute::getUid).collect(Collectors.toList());
trackedEntityInstance.setAttributes(trackedEntityInstance.getAttributes().stream().filter(att -> tetAttributes.contains(att.getAttribute())).collect(Collectors.toList()));
}
}
return trackedEntityInstance;
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class DataAnalysisController method getValidationRuleExpressionDetials.
@GetMapping("validationRulesExpression")
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public ValidationRuleExpressionDetails getValidationRuleExpressionDetials(@RequestParam String validationRuleId, @RequestParam String periodId, @RequestParam String organisationUnitId, @RequestParam(required = false) String attributeOptionComboId) throws WebMessageException {
ValidationRule validationRule = validationRuleService.getValidationRule(validationRuleId);
if (validationRule == null) {
throw new WebMessageException(notFound("Can't find ValidationRule with id =" + validationRuleId));
}
OrganisationUnit organisationUnit = organisationUnitService.getOrganisationUnit(organisationUnitId);
if (organisationUnit == null) {
throw new WebMessageException(notFound("Can't find OrganisationUnit with id =" + organisationUnitId));
}
Period period = periodService.getPeriod(periodId);
if (period == null) {
throw new WebMessageException(notFound("Can't find Period with id =" + periodId));
}
CategoryOptionCombo attributeOptionCombo;
if (attributeOptionComboId == null) {
attributeOptionCombo = categoryService.getDefaultCategoryOptionCombo();
} else {
attributeOptionCombo = categoryService.getCategoryOptionCombo(attributeOptionComboId);
if (attributeOptionCombo == null) {
throw new WebMessageException(notFound("Can't find AttributeOptionCombo with id = " + attributeOptionComboId));
}
}
ValidationAnalysisParams params = validationService.newParamsBuilder(Lists.newArrayList(validationRule), organisationUnit, Lists.newArrayList(period)).withAttributeOptionCombo(attributeOptionCombo).build();
return validationService.getValidationRuleExpressionDetails(params);
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class MessageConversationController method postObject.
private WebMessage postObject(HttpServletRequest request, MessageConversation messageConversation) throws WebMessageException {
Set<User> users = Sets.newHashSet(messageConversation.getUsers());
messageConversation.getUsers().clear();
messageConversation.getUsers().addAll(getUsersToMessageConversation(messageConversation, users));
if (messageConversation.getUsers().isEmpty()) {
throw new WebMessageException(conflict("No recipients selected."));
}
String metaData = MessageService.META_USER_AGENT + request.getHeader(ContextUtils.HEADER_USER_AGENT);
Set<FileResource> attachments = new HashSet<>();
for (FileResource fr : messageConversation.getAttachments()) {
FileResource fileResource = fileResourceService.getFileResource(fr.getUid());
if (fileResource == null) {
throw new WebMessageException(conflict("Attachment '" + fr.getUid() + "' not found."));
}
if (!fileResource.getDomain().equals(FileResourceDomain.MESSAGE_ATTACHMENT) || fileResource.isAssigned()) {
throw new WebMessageException(conflict("Attachment '" + fr.getUid() + "' is already used or not a valid attachment."));
}
fileResource.setAssigned(true);
fileResourceService.updateFileResource(fileResource);
attachments.add(fileResource);
}
long id = messageService.sendPrivateMessage(messageConversation.getUsers(), messageConversation.getSubject(), messageConversation.getText(), metaData, attachments);
org.hisp.dhis.message.MessageConversation conversation = messageService.getMessageConversation(id);
return created("Message conversation created").setLocation(MessageConversationSchemaDescriptor.API_ENDPOINT + "/" + conversation.getUid());
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class MessageConversationController method getAttachment.
@GetMapping("/{mcUid}/{msgUid}/attachments/{fileUid}")
public void getAttachment(@PathVariable(value = "mcUid") String mcUid, @PathVariable(value = "msgUid") String msgUid, @PathVariable(value = "fileUid") String fileUid, @CurrentUser User currentUser, HttpServletResponse response) throws WebMessageException {
Message message = getMessage(mcUid, msgUid, currentUser);
FileResource fr = fileResourceService.getFileResource(fileUid);
if (message == null) {
throw new WebMessageException(notFound("No message found with id '" + msgUid + "' for message conversation with id '" + mcUid + "'"));
}
boolean attachmentExists = message.getAttachments().stream().filter(att -> att.getUid().equals(fileUid)).count() == 1;
if (fr == null || !attachmentExists) {
throw new WebMessageException(notFound("No messageattachment found with id '" + fileUid + "'"));
}
if (!fr.getDomain().equals(FileResourceDomain.MESSAGE_ATTACHMENT)) {
throw new WebMessageException(conflict("Invalid messageattachment."));
}
fileResourceUtils.configureFileResourceResponse(response, fr);
}
use of org.hisp.dhis.dxf2.events.trackedentity.store.query.EventQuery.COLUMNS.ID in project dhis2-core by dhis2.
the class RelationshipController method updateRelationshipXml.
@PutMapping(path = "/{id}", consumes = APPLICATION_XML_VALUE, produces = APPLICATION_XML_VALUE)
@ResponseBody
public WebMessage updateRelationshipXml(@PathVariable String id, ImportOptions importOptions, HttpServletRequest request) throws IOException {
Relationship relationship = relationshipService.getRelationshipByUid(id);
if (relationship == null) {
return notFound("No relationship with id '" + id + "' was found.");
}
InputStream inputStream = StreamUtils.wrapAndCheckCompressionFormat(request.getInputStream());
ImportSummary importSummary = relationshipService.updateRelationshipXml(id, inputStream, importOptions);
importSummary.setImportOptions(importOptions);
return importSummary(importSummary).withPlainResponseBefore(DhisApiVersion.V38);
}
Aggregations