Skip to content

Commit

Permalink
avniproject#786 | Replaced new ObjectMapper with the ObjectMapperSing…
Browse files Browse the repository at this point in the history
…elton already present in avni-server
  • Loading branch information
ombhardwajj committed Oct 17, 2024
1 parent abee861 commit c9022db
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import org.avni.server.domain.metabase.*;
import org.avni.server.util.ObjectMapperSingleton;
import org.avni.server.util.S;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.stereotype.Repository;
Expand All @@ -17,7 +18,7 @@ public class DatabaseRepository extends MetabaseConnector {
private final ObjectMapper objectMapper;
public DatabaseRepository(RestTemplateBuilder restTemplateBuilder) {
super(restTemplateBuilder);
this.objectMapper = new ObjectMapper();
this.objectMapper = ObjectMapperSingleton.getObjectMapper();
}

public Database save(Database database) {
Expand Down Expand Up @@ -91,7 +92,7 @@ public void createQuestionForTable(Database database, TableDetails tableDetails,
FieldDetails joinField2 = getFieldDetailsByName(database, tableDetails, destinationField);

ArrayNode joinsArray = objectMapper.createArrayNode();
MetabaseQuery query = new MetabaseQueryBuilder(database, joinsArray, objectMapper)
MetabaseQuery query = new MetabaseQueryBuilder(database, joinsArray)
.forTable(tableDetails)
.joinWith(addressTableDetails, joinField1, joinField2)
.build();
Expand All @@ -105,11 +106,11 @@ public void createQuestionForTable(Database database, TableDetails tableDetails,
getCollectionByName(database).getIdAsInt()
);

postForObject(metabaseApiUrl + "/card", requestBody.toJson(objectMapper), JsonNode.class);
postForObject(metabaseApiUrl + "/card", requestBody.toJson(), JsonNode.class);
}

public void createQuestionForASingleTable(Database database, TableDetails tableDetails) {
MetabaseQuery query = new MetabaseQueryBuilder(database, objectMapper.createArrayNode(), objectMapper)
MetabaseQuery query = new MetabaseQueryBuilder(database, objectMapper.createArrayNode())
.forTable(tableDetails)
.build();

Expand All @@ -122,7 +123,7 @@ public void createQuestionForASingleTable(Database database, TableDetails tableD
getCollectionByName(database).getIdAsInt()
);

postForObject(metabaseApiUrl + "/card", requestBody.toJson(objectMapper), JsonNode.class);
postForObject(metabaseApiUrl + "/card", requestBody.toJson(), JsonNode.class);
}

public FieldDetails getFieldDetailsByName(Database database, TableDetails tableDetails, FieldDetails fieldDetails) {
Expand Down Expand Up @@ -177,7 +178,7 @@ public DatabaseSyncStatus getInitialSyncStatus(Database database) {

public DatasetResponse getDataset(DatasetRequestBody requestBody) {
String url = metabaseApiUrl + "/dataset";
String jsonRequestBody = requestBody.toJson(objectMapper).toString();
String jsonRequestBody = requestBody.toJson().toString();
String jsonResponse = postForObject(url, jsonRequestBody, String.class);
try {
return objectMapper.readValue(jsonResponse, DatasetResponse.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.avni.server.util.ObjectMapperSingleton;

public class DatasetRequestBody {

Expand All @@ -13,16 +14,16 @@ public DatasetRequestBody(Database database, TableDetails table) {
this.table = table;
}

public ObjectNode toJson(ObjectMapper objectMapper) {
ObjectNode rootNode = objectMapper.createObjectNode();
public ObjectNode toJson() {
ObjectNode rootNode = ObjectMapperSingleton.getObjectMapper().createObjectNode();
rootNode.put("database", database.getId());

ObjectNode queryNode = objectMapper.createObjectNode();
ObjectNode queryNode = ObjectMapperSingleton.getObjectMapper().createObjectNode();
queryNode.put("source-table", table.getId());

rootNode.set("query", queryNode);
rootNode.put("type", "query");
rootNode.set("parameters", objectMapper.createArrayNode());
rootNode.set("parameters", ObjectMapperSingleton.getObjectMapper().createObjectNode());

return rootNode;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.avni.server.util.ObjectMapperSingleton;

public enum FieldAttribute {
ALL("all"),
Expand All @@ -24,8 +25,8 @@ public String getAttributeName() {
return attributeName;
}

public ObjectNode toJson(ObjectMapper objectMapper, Object value) {
ObjectNode attributeNode = objectMapper.createObjectNode();
public ObjectNode toJson(Object value) {
ObjectNode attributeNode = ObjectMapperSingleton.getObjectMapper().createObjectNode();
attributeNode.put(attributeName, value.toString());
return attributeNode;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.avni.server.util.ObjectMapperSingleton;

public class MetabaseQueryBuilder {
private final Database database;
private final ArrayNode joinsArray;
private final ObjectMapper objectMapper;
private ObjectNode queryNode;

public MetabaseQueryBuilder(Database database, ArrayNode joinsArray, ObjectMapper objectMapper) {
public MetabaseQueryBuilder(Database database, ArrayNode joinsArray) {
this.database = database;
this.joinsArray = joinsArray;
this.objectMapper = objectMapper;
this.objectMapper = ObjectMapperSingleton.getObjectMapper();
this.queryNode = objectMapper.createObjectNode();
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.avni.server.domain.metabase;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.avni.server.util.ObjectMapperSingleton;

// Refer docs : https://www.metabase.com/docs/latest/api/card#post-apicard
public class MetabaseRequestBody {
Expand All @@ -24,11 +24,11 @@ public MetabaseRequestBody(String name, MetabaseQuery datasetQuery, Visualizatio
this.collectionId = collectionId;
}

public ObjectNode toJson(ObjectMapper objectMapper) {
ObjectNode rootNode = objectMapper.createObjectNode();
public ObjectNode toJson() {
ObjectNode rootNode = ObjectMapperSingleton.getObjectMapper().createObjectNode();
rootNode.put("name", name);

ObjectNode datasetQueryNode = objectMapper.createObjectNode();
ObjectNode datasetQueryNode = ObjectMapperSingleton.getObjectMapper().createObjectNode();
datasetQueryNode.put("database", datasetQuery.getDatabaseId());
datasetQueryNode.put("type", "query");
datasetQueryNode.set("query", datasetQuery.toJson());
Expand Down

0 comments on commit c9022db

Please sign in to comment.