add MetaDataColumn import
This commit is contained in:
@@ -6,7 +6,9 @@ import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Entity
|
||||
@Getter
|
||||
@Setter
|
||||
@@ -46,4 +48,22 @@ public class MetaDataColumn extends AbstractEntity {
|
||||
public String getTableName() {
|
||||
return table.getTableName();
|
||||
}
|
||||
|
||||
public String updateColumnName(String value) {
|
||||
if (!this.getColumnName().equals(value)) {
|
||||
this.setColumnName(value);
|
||||
log.info("update columnName");
|
||||
return "updated " + this.getId() + " with " + value + "\n";
|
||||
}
|
||||
return "no changes for " + this.getId() + "\n";
|
||||
}
|
||||
|
||||
public String updateColumnSyncName(String value) {
|
||||
if (!this.getColumnSyncName().equals(value)) {
|
||||
this.setColumnSyncName(value);
|
||||
log.info("update columnSyncName");
|
||||
return "updated " + this.getId() + " with " + value + "\n";
|
||||
}
|
||||
return "no changes for " + this.getId() + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,10 +29,12 @@ public class MetaDataTable extends AbstractEntity {
|
||||
@OneToMany(fetch = FetchType.EAGER, mappedBy = "table")
|
||||
private List<MetaDataColumn> tableColumns = new LinkedList<>();
|
||||
|
||||
public void updateTableName(String value) {
|
||||
public String updateTableName(String value) {
|
||||
if (!this.getTableName().equals(value)) {
|
||||
this.setTableName(value);
|
||||
log.info("update tableName");
|
||||
return "updated " + this.getId() + " with " + value;
|
||||
}
|
||||
return "no changes for " + this.getId();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ import de.thpeetz.kontor.admin.data.MetaDataTable;
|
||||
import de.thpeetz.kontor.admin.repository.MetaDataTableRepository;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.sql.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
@@ -139,7 +138,7 @@ public class MetaDataService {
|
||||
metaDataColumnRepository.save(metaDataColumn);
|
||||
}
|
||||
|
||||
public String importData(Map<String, String> fields) {
|
||||
public String importTableData(Map<String, String> fields) {
|
||||
AtomicReference<String> status = new AtomicReference<>("unknown");
|
||||
String id = fields.get("id");
|
||||
Optional<MetaDataTable> optional = metaDataTableRepository.findById(id);
|
||||
@@ -158,15 +157,61 @@ public class MetaDataService {
|
||||
} else {
|
||||
optional.ifPresent( entry -> {
|
||||
log.info(" found: {}", entry.getTableName());
|
||||
updateFields(entry, fields);
|
||||
String updateStatus = updateTableFields(entry, fields);
|
||||
metaDataTableRepository.save(entry);
|
||||
status.set("found");
|
||||
status.set(updateStatus);
|
||||
});
|
||||
}
|
||||
return status.get();
|
||||
}
|
||||
|
||||
private void updateFields(MetaDataTable metaDataTable, Map<String, String> fields) {
|
||||
public String importColumnData(String tableName, Map<String, String> fields) {
|
||||
AtomicReference<String> status = new AtomicReference<>("unknown");
|
||||
String id = fields.get("id");
|
||||
Optional<MetaDataColumn> optional = metaDataColumnRepository.findById(id);
|
||||
if (optional.isEmpty()) {
|
||||
log.info(" not found: {} with {}", id, fields);
|
||||
status.set(id + "not found");
|
||||
MetaDataColumn metaDataColumn = new MetaDataColumn();
|
||||
metaDataColumn.setId(id);
|
||||
metaDataColumn.setColumnName(fields.get("column_name"));
|
||||
metaDataColumn.setColumnSyncName(fields.get("column_sync_name"));
|
||||
metaDataColumn.setColumnType(fields.get("column_type"));
|
||||
metaDataColumnRepository.save(metaDataColumn);
|
||||
} else {
|
||||
optional.ifPresent( entry -> {
|
||||
log.info(" found: {}", entry.getTableName());
|
||||
String updateStatus = updateColumnFields(entry, tableName, fields);
|
||||
metaDataColumnRepository.save(entry);
|
||||
status.set(updateStatus);
|
||||
});
|
||||
}
|
||||
return status.get();
|
||||
}
|
||||
|
||||
private String updateColumnFields(MetaDataColumn metaDataColumn, String tableName, Map<String, String> fields) {
|
||||
StringBuilder status = new StringBuilder();
|
||||
for (Map.Entry<String, String> entry : fields.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
String value = entry.getValue();
|
||||
switch (key) {
|
||||
case "id", "created_date", "last_modified_date", "version":
|
||||
break;
|
||||
case "column_name":
|
||||
status.append(metaDataColumn.updateColumnName(value));
|
||||
break;
|
||||
case "column_sync_name":
|
||||
status.append(metaDataColumn.updateColumnSyncName(value));
|
||||
break;
|
||||
default:
|
||||
log.info("field {} is unknown for table {}", key, tableName);
|
||||
}
|
||||
}
|
||||
return status.toString();
|
||||
}
|
||||
|
||||
private String updateTableFields(MetaDataTable metaDataTable, Map<String, String> fields) {
|
||||
String status = "";
|
||||
for (Map.Entry<String, String> entry : fields.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
String value = entry.getValue();
|
||||
@@ -174,11 +219,11 @@ public class MetaDataService {
|
||||
case "id", "created_date", "last_modified_date", "version":
|
||||
break;
|
||||
case "table_name":
|
||||
metaDataTable.updateTableName(value);
|
||||
break;
|
||||
status += metaDataTable.updateTableName(value);
|
||||
default:
|
||||
log.info("field {} is unknown for table {}", key, MetaDataTable.class.getName());
|
||||
}
|
||||
}
|
||||
return status;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,10 @@ public class DataManagementService {
|
||||
AtomicReference<String> status = new AtomicReference<>("unknown");
|
||||
switch (nodeName) {
|
||||
case "meta_data_table":
|
||||
//status.set(metaDataService.importData(fields));
|
||||
status.set(metaDataService.importTableData(fields));
|
||||
break;
|
||||
case "meta_data_column":
|
||||
status.set(metaDataService.importColumnData(nodeName, fields));
|
||||
break;
|
||||
default:
|
||||
log.debug("import for {} not implemented", nodeName);
|
||||
|
||||
Reference in New Issue
Block a user