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
commit f934a27458dc0346b026ad2512f20b73d93eb1d1 Author: s7monk <[email protected]> AuthorDate: Sun May 5 20:15:23 2024 +0800 [Improvement] Optimize return value type for database service 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; } }
