Skip to content

Commit

Permalink
Merge branch 'release-2.12.x' into TASK-5501
Browse files Browse the repository at this point in the history
  • Loading branch information
jtarraga authored Jan 29, 2024
2 parents 3f1c8f8 + 39b05ec commit 39da25d
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 90 deletions.
4 changes: 0 additions & 4 deletions .github/workflows/scripts/get_same_branch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ if [[ -z $BRANCH_NAME ]]; then
exit 1
fi

if [[ $BRANCH_NAME != "TASK-"* ]]; then
echo "No need to check dependencies."
exit 0
fi

function install(){
local REPO=$1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'maven'
- name: Install dependencies branches
run: |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,25 @@
package org.opencb.opencga.app.cli;

import com.beust.jcommander.JCommander;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.core.config.Configurator;
import org.opencb.commons.datastore.core.ObjectMap;
import org.opencb.commons.utils.FileUtils;
import org.opencb.commons.utils.PrintUtils;
import org.opencb.opencga.app.cli.main.utils.CommandLineUtils;
import org.opencb.opencga.app.cli.session.SessionManager;
import org.opencb.opencga.client.config.ClientConfiguration;
import org.opencb.opencga.client.exceptions.ClientException;
import org.opencb.opencga.client.rest.OpenCGAClient;
import org.opencb.opencga.core.config.Configuration;
import org.opencb.opencga.core.config.storage.StorageConfiguration;
import org.opencb.opencga.core.response.RestResponse;
import org.opencb.opencga.server.generator.models.RestCategory;
import org.opencb.opencga.server.generator.models.RestEndpoint;
import org.opencb.opencga.server.generator.models.RestParameter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -36,6 +45,7 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

/**
* Created by imedina on 19/04/16.
Expand Down Expand Up @@ -281,6 +291,95 @@ public CommandExecutor setSessionManager(SessionManager sessionManager) {
return this;
}


public String getObjectAsJSON(String objectCategory, String objectPath, OpenCGAClient openCGAClient) throws Exception {
StringBuilder jsonInString = new StringBuilder("\n");
try {
ObjectMap queryParams = new ObjectMap();
queryParams.putIfNotEmpty("category", objectCategory);
RestResponse<List> response = openCGAClient.getMetaClient().api(queryParams);
ObjectMapper jsonObjectMapper = new ObjectMapper();
for (List list : response.getResponses().get(0).getResults()) {
List<RestCategory> categories = jsonObjectMapper.convertValue(list, new TypeReference<List<RestCategory>>() {});
for (RestCategory category : categories) {
for (RestEndpoint endpoint : category.getEndpoints()) {
if (objectPath.equals(endpoint.getPath())) {
boolean enc = false;
for (RestParameter parameter : endpoint.getParameters()) {
//jsonInString += parameter.getName()+":"+parameter.getAllowedValues()+"\n";
if (parameter.getData() != null) {
enc = true;
jsonInString.append(printBody(parameter.getData(), ""));
}
}
if (!enc) {
jsonInString.append("No model available");
}
//
}
}
}
}
} catch (Exception e) {
jsonInString = new StringBuilder("Data model not found.");
CommandLineUtils.error(e);
}
return jsonInString.toString();
}

private String printBody(List<RestParameter> data, String tabs) {
String res = "";
res += "{\n";
String tab = " " + tabs;
for (RestParameter parameter : data) {
if (parameter.getData() == null) {
res += printParameter(parameter, tab);
} else {
res += tab + parameter.getName() + "\"" + ": [" + printBody(parameter.getData(), tab) + "],\n";
}
}
res += tabs + "}";
return res;

}

private String printParameter(RestParameter parameter, String tab) {

return tab + "\"" + parameter.getName() + "\"" + ":" + printParameterValue(parameter) + ",\n";
}

private String printParameterValue(RestParameter parameter) {

if(!StringUtils.isEmpty(parameter.getAllowedValues())){
return parameter.getAllowedValues().replace(" ", "|");
}
switch (parameter.getType()) {
case "Boolean":
case "java.lang.Boolean":
return "false";
case "Long":
case "Float":
case "Double":
case "Integer":
case "int":
case "double":
case "float":
case "long":
return "0";
case "List":
return "[\"\"]";
case "Date":
return "\"dd/mm/yyyy\"";
case "Map":
return "{\"key\": \"value\"}";
case "String":
return "\"\"";
default:
return "\"-\"";
}
}


public Logger getLogger() {
return logger;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,90 +225,7 @@ public OpencgaCommandExecutor setOpenCGAClient(OpenCGAClient openCGAClient) {
}

public String getObjectAsJSON(String objectCategory, String objectPath) throws Exception {
StringBuilder jsonInString = new StringBuilder("\n");
try {
ObjectMap queryParams = new ObjectMap();
queryParams.putIfNotEmpty("category", objectCategory);
RestResponse<List> response = openCGAClient.getMetaClient().api(queryParams);
ObjectMapper jsonObjectMapper = new ObjectMapper();
for (List list : response.getResponses().get(0).getResults()) {
List<RestCategory> categories = jsonObjectMapper.convertValue(list, new TypeReference<List<RestCategory>>() {});
for (RestCategory category : categories) {
for (RestEndpoint endpoint : category.getEndpoints()) {
if (objectPath.equals(endpoint.getPath())) {
boolean enc = false;
for (RestParameter parameter : endpoint.getParameters()) {
//jsonInString += parameter.getName()+":"+parameter.getAllowedValues()+"\n";
if (parameter.getData() != null) {
enc = true;
jsonInString.append(printBody(parameter.getData(), ""));
}
}
if (!enc) {
jsonInString.append("No model available");
}
//
}
}
}
}
} catch (Exception e) {
jsonInString = new StringBuilder("Data model not found.");
CommandLineUtils.error(e);
}
return jsonInString.toString();
}

private String printBody(List<RestParameter> data, String tabs) {
String res = "";
res += "{\n";
String tab = " " + tabs;
for (RestParameter parameter : data) {
if (parameter.getData() == null) {
res += printParameter(parameter, tab);
} else {
res += tab + parameter.getName() + "\"" + ": [" + printBody(parameter.getData(), tab) + "],\n";
}
}
res += tabs + "}";
return res;

}

private String printParameter(RestParameter parameter, String tab) {

return tab + "\"" + parameter.getName() + "\"" + ":" + printParameterValue(parameter) + ",\n";
}

private String printParameterValue(RestParameter parameter) {

if(!StringUtils.isEmpty(parameter.getAllowedValues())){
return parameter.getAllowedValues().replace(" ", "|");
}
switch (parameter.getType()) {
case "Boolean":
case "java.lang.Boolean":
return "false";
case "Long":
case "Float":
case "Double":
case "Integer":
case "int":
case "double":
case "float":
case "long":
return "0";
case "List":
return "[\"\"]";
case "Date":
return "\"dd/mm/yyyy\"";
case "Map":
return "{\"key\": \"value\"}";
case "String":
return "\"\"";
default:
return "\"-\"";
}
return super.getObjectAsJSON(objectCategory, objectPath, openCGAClient);
}

private boolean isNumeric(String type) {
Expand Down
1 change: 0 additions & 1 deletion opencga-server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,6 @@
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<warName>${opencga.war.name}</warName>
<!--
Expand Down
14 changes: 14 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,8 @@
<servlet-api.version>2.5-20081211</servlet-api.version>

<kryo.version>2.23.0</kryo.version>
<lombok.version>1.18.30</lombok.version>
<maven-war-plugin.version>3.4.0</maven-war-plugin.version>
</properties>

<scm>
Expand Down Expand Up @@ -987,6 +989,12 @@
<artifactId>grep4j</artifactId>
<version>${grep4j.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
Expand Down Expand Up @@ -1087,6 +1095,7 @@
<artifactId>kryo</artifactId>
<version>${kryo.version}</version>
</dependency>

</dependencies>
</dependencyManagement>

Expand All @@ -1111,6 +1120,11 @@
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>${maven-war-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>

Expand Down

0 comments on commit 39da25d

Please sign in to comment.