This is an automated email from the ASF dual-hosted git repository.
nicholasjiang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-webui.git
The following commit(s) were added to refs/heads/main by this push:
new c0a18c2 optimize database interface. (#207)
c0a18c2 is described below
commit c0a18c2142b7f2c526cc2a509044cfcd74152636
Author: s7monk <[email protected]>
AuthorDate: Sun May 5 20:15:23 2024 +0800
optimize database interface. (#207)
---
.../web/server/controller/DatabaseController.java | 29 ++++++++++++++--------
.../paimon/web/server/service/DatabaseService.java | 25 +++++++++----------
.../server/service/impl/DatabaseServiceImpl.java | 29 ++++++++++------------
3 files changed, 43 insertions(+), 40 deletions(-)
diff --git
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
index 8c2b8cb..66ed855 100644
---
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
+++
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/controller/DatabaseController.java
@@ -20,6 +20,7 @@ package org.apache.paimon.web.server.controller;
import org.apache.paimon.web.server.data.dto.DatabaseDTO;
import org.apache.paimon.web.server.data.result.R;
+import org.apache.paimon.web.server.data.result.enums.Status;
import org.apache.paimon.web.server.data.vo.DatabaseVO;
import org.apache.paimon.web.server.service.DatabaseService;
@@ -46,36 +47,42 @@ public class DatabaseController {
}
/**
- * Creates a new database based on the provided DatabaseInfo.
+ * Creates a new database.
*
- * @param databaseDTO The DatabaseInfo object containing the details of
the new database.
- * @return R<Void/> indicating the result of the operation.
+ * @param databaseDTO The details of the database to create
+ * @return a {@code R<Void>} response indicating success or failure
*/
@PostMapping("/create")
public R<Void> createDatabase(@RequestBody DatabaseDTO databaseDTO) {
- return databaseService.createDatabase(databaseDTO);
+ if (databaseService.databaseExists(databaseDTO)) {
+ return R.failed(Status.DATABASE_NAME_IS_EXIST,
databaseDTO.getName());
+ }
+ return databaseService.createDatabase(databaseDTO)
+ ? R.succeed()
+ : R.failed(Status.DATABASE_CREATE_ERROR);
}
/**
* Lists databases given catalog id.
*
- * @return The list of databases of given catalog id.
+ * @return The list of databases of given catalog id
*/
@GetMapping("/list")
public R<List<DatabaseVO>> listDatabases(
@RequestParam(value = "catalogId", required = false) Integer
catalogId) {
- return databaseService.listDatabases(catalogId);
+ return R.succeed(databaseService.listDatabases(catalogId));
}
/**
- * Removes a database by its name.
+ * Removes the specified database.
*
- * @param databaseDTO The drop database DTO.
- * @return A response indicating the success or failure of the removal
operation.
- * @throws RuntimeException if the database is not found, or it is not
empty.
+ * @param databaseDTO The database to be dropped
+ * @return a {@code R<Void>} response indicating success or failure
*/
@PostMapping("/drop")
public R<Void> dropDatabase(@RequestBody DatabaseDTO databaseDTO) {
- return databaseService.dropDatabase(databaseDTO);
+ return databaseService.dropDatabase(databaseDTO)
+ ? R.succeed()
+ : R.failed(Status.DATABASE_DROP_ERROR);
}
}
diff --git
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/DatabaseService.java
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/DatabaseService.java
index 602fe04..cda2e2e 100644
---
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/DatabaseService.java
+++
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/DatabaseService.java
@@ -19,7 +19,6 @@
package org.apache.paimon.web.server.service;
import org.apache.paimon.web.server.data.dto.DatabaseDTO;
-import org.apache.paimon.web.server.data.result.R;
import org.apache.paimon.web.server.data.vo.DatabaseVO;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -30,34 +29,34 @@ import java.util.List;
public interface DatabaseService extends IService<DatabaseVO> {
/**
- * Verifies whether the database name is unique.
+ * Checks if the specified database exists.
*
- * @param databaseVO database info
- * @return result
+ * @param databaseDTO The database to check
+ * @return true if the database exists, false otherwise
*/
- boolean checkCatalogNameUnique(DatabaseVO databaseVO);
+ boolean databaseExists(DatabaseDTO databaseDTO);
/**
* Creates a new database given {@link DatabaseDTO}.
*
* @param databaseDTO The {@link DatabaseDTO} object that contains the
detail of the created
- * database.
- * @return void indicating the result of the operation.
+ * database
+ * @return true if the operation is successful, false otherwise
*/
- R<Void> createDatabase(DatabaseDTO databaseDTO);
+ boolean createDatabase(DatabaseDTO databaseDTO);
/**
* Lists databases given catalog id.
*
- * @return The list of databases of given catalog.
+ * @return The list of databases of given catalog
*/
- R<List<DatabaseVO>> listDatabases(Integer catalogId);
+ List<DatabaseVO> listDatabases(Integer catalogId);
/**
* Drops database given database name.
*
- * @param databaseDTO The dropping database.
- * @return A response indicating the success or failure of the removal
operation.
+ * @param databaseDTO The dropping database
+ * @return true if the operation is successful, false otherwise
*/
- R<Void> dropDatabase(DatabaseDTO databaseDTO);
+ boolean dropDatabase(DatabaseDTO databaseDTO);
}
diff --git
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/impl/DatabaseServiceImpl.java
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/impl/DatabaseServiceImpl.java
index c2f69ee..7986888 100644
---
a/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/impl/DatabaseServiceImpl.java
+++
b/paimon-web-server/src/main/java/org/apache/paimon/web/server/service/impl/DatabaseServiceImpl.java
@@ -21,8 +21,6 @@ package org.apache.paimon.web.server.service.impl;
import org.apache.paimon.web.api.catalog.PaimonService;
import org.apache.paimon.web.server.data.dto.DatabaseDTO;
import org.apache.paimon.web.server.data.model.CatalogInfo;
-import org.apache.paimon.web.server.data.result.R;
-import org.apache.paimon.web.server.data.result.enums.Status;
import org.apache.paimon.web.server.data.vo.DatabaseVO;
import org.apache.paimon.web.server.mapper.DatabaseMapper;
import org.apache.paimon.web.server.service.CatalogService;
@@ -51,30 +49,29 @@ public class DatabaseServiceImpl extends
ServiceImpl<DatabaseMapper, DatabaseVO>
}
@Override
- public boolean checkCatalogNameUnique(DatabaseVO databaseVO) {
- return false;
+ public boolean databaseExists(DatabaseDTO databaseDTO) {
+ CatalogInfo catalogInfo = getCatalogInfo(databaseDTO);
+ PaimonService service =
PaimonServiceUtils.getPaimonService(catalogInfo);
+ return service.databaseExists(databaseDTO.getName());
}
@Override
- public R<Void> createDatabase(DatabaseDTO databaseDTO) {
+ public boolean createDatabase(DatabaseDTO databaseDTO) {
try {
CatalogInfo catalogInfo = getCatalogInfo(databaseDTO);
PaimonService service =
PaimonServiceUtils.getPaimonService(catalogInfo);
- if (service.databaseExists(databaseDTO.getName())) {
- return R.failed(Status.DATABASE_NAME_IS_EXIST,
databaseDTO.getName());
- }
service.createDatabase(
databaseDTO.getName(),
BooleanUtils.toBooleanDefaultIfNull(databaseDTO.isIgnoreIfExists(), false));
- return R.succeed();
+ return true;
} catch (Exception e) {
log.error("Exception with creating database.", e);
- return R.failed(Status.DATABASE_CREATE_ERROR);
+ return false;
}
}
@Override
- public R<List<DatabaseVO>> listDatabases(Integer catalogId) {
+ public List<DatabaseVO> listDatabases(Integer catalogId) {
List<DatabaseVO> resultList = new LinkedList<>();
if (Objects.nonNull(catalogId)) {
CatalogInfo catalog = catalogService.getById(catalogId);
@@ -89,7 +86,7 @@ public class DatabaseServiceImpl extends
ServiceImpl<DatabaseMapper, DatabaseVO>
database.setDescription("");
resultList.add(database);
});
- return R.succeed(resultList);
+ return resultList;
} else {
List<CatalogInfo> catalogInfoList = catalogService.list();
if (!CollectionUtils.isEmpty(catalogInfoList)) {
@@ -110,12 +107,12 @@ public class DatabaseServiceImpl extends
ServiceImpl<DatabaseMapper, DatabaseVO>
});
});
}
- return R.succeed(resultList);
+ return resultList;
}
}
@Override
- public R<Void> dropDatabase(DatabaseDTO databaseDTO) {
+ public boolean dropDatabase(DatabaseDTO databaseDTO) {
try {
CatalogInfo catalogInfo = getCatalogInfo(databaseDTO);
PaimonService service =
PaimonServiceUtils.getPaimonService(catalogInfo);
@@ -123,10 +120,10 @@ public class DatabaseServiceImpl extends
ServiceImpl<DatabaseMapper, DatabaseVO>
databaseDTO.getName(),
BooleanUtils.toBooleanDefaultIfNull(databaseDTO.isIgnoreIfExists(), false),
BooleanUtils.toBooleanDefaultIfNull(databaseDTO.isCascade(), true));
- return R.succeed();
+ return true;
} catch (Exception e) {
log.error("Exception with dropping database.", e);
- return R.failed(Status.DATABASE_DROP_ERROR);
+ return false;
}
}