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;
         }
     }
 

Reply via email to