public void updateResource()

in data-resource-management-service/drms-rdbms-impl/drms-server/src/main/java/org/apache/airavata/drms/api/handlers/ResourceServiceHandler.java [267:315]


    public void updateResource(ResourceUpdateRequest
                                       request, StreamObserver<ResourceUpdateResponse> responseObserver) {
        try {
            AuthenticatedUser callUser = request.getAuthToken().getAuthenticatedUser();
            String type = request.getResource().getType();
            String parentId = request.getResource().getParentId();
            String entityId = request.getResource().getResourceId();
            String name = request.getResource().getResourceName();

            Optional<Resource> exResource = resourceRepository.findById(entityId);
            if (exResource.isPresent()) {
                List<ResourceProperty> resourceProperties = resourcePropertyRepository.
                        findByPropertyKeyAndResourceId("owner", exResource.get().getId());
                if (parentId == null || parentId.isEmpty())
                    parentId = exResource.get().getParentResourceId();
                if (!resourceProperties.isEmpty()) {
                    Optional<Entity> exEntity = CustosUtils.mergeResourceEntity(custosClientProvider, callUser.getTenantId(),
                            parentId, type, entityId,
                            request.getResource().getResourceName(), request.getResource().getResourceName(),
                            resourceProperties.get(0).getPropertyValue());

                    if (exEntity.isPresent()) {
                        Resource resource = ResourceMapper.map(request.getResource(), exResource.get(), exEntity.get(), callUser);
                        resource.setResourceType(type);
                        resource.setParentResourceId(parentId);

                        resourceRepository.save(resource);

                        GenericResource genericResource = ResourceMapper.map(resource, exEntity.get());

                        ResourceUpdateResponse response = ResourceUpdateResponse
                                .newBuilder()
                                .setResource(genericResource)
                                .build();
                        responseObserver.onNext(response);
                        responseObserver.onCompleted();
                        return;
                    }
                }
            }
            //TODO: Error


        } catch (Exception ex) {
            logger.error("Error occurred while creating resource {}", request.getResource().getResourceId(), ex);
            String msg = "Error occurred while creating resource" + ex.getMessage();
            responseObserver.onError(Status.INTERNAL.withDescription(msg).asRuntimeException());
        }
    }