This is an automated email from the ASF dual-hosted git repository.

dockerzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new d005158938 [INLONG-8199][Manager] Supports get brief information of 
inlong stream (#8207)
d005158938 is described below

commit d0051589386f18f278d7bc9078b950e715915af7
Author: fuweng11 <[email protected]>
AuthorDate: Sat Jun 10 16:45:09 2023 +0800

    [INLONG-8199][Manager] Supports get brief information of inlong stream 
(#8207)
---
 .../manager/pojo/stream/InlongStreamBriefInfo.java |  6 +++++
 .../service/stream/InlongStreamService.java        | 12 ++++++++-
 .../service/stream/InlongStreamServiceImpl.java    | 30 ++++++++++++++++++++++
 .../web/controller/InlongStreamController.java     | 13 +++++++++-
 .../openapi/OpenInLongStreamController.java        | 14 ++++++++++
 5 files changed, 73 insertions(+), 2 deletions(-)

diff --git 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
index 56a5dece59..59d6aa9e3d 100644
--- 
a/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
+++ 
b/inlong-manager/manager-pojo/src/main/java/org/apache/inlong/manager/pojo/stream/InlongStreamBriefInfo.java
@@ -70,4 +70,10 @@ public class InlongStreamBriefInfo {
     @ApiModelProperty(value = "Sink brief list")
     private List<SinkBriefInfo> sinkList;
 
+    @ApiModelProperty(value = "Field list")
+    private List<StreamField> fieldList;
+
+    @ApiModelProperty(value = "Inlong stream Extension properties")
+    private List<InlongStreamExtInfo> extList;
+
 }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
index 4b2023fab4..9f83d7764a 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamService.java
@@ -85,6 +85,16 @@ public interface InlongStreamService {
      */
     InlongStreamInfo get(String groupId, String streamId, UserInfo opInfo);
 
+    /**
+     * Query the brief of the specified inlong stream
+     *
+     * @param groupId Inlong group id
+     * @param streamId Inlong stream id
+     * @param operator operator
+     * @return inlong stream brief
+     */
+    InlongStreamBriefInfo getBrief(String groupId, String streamId, String 
operator);
+
     /**
      * List streams contained in one group
      *
@@ -237,7 +247,7 @@ public interface InlongStreamService {
     /**
      * Converts a statement to a streamFields
      *
-     * @param parseFieldRequest    parse field request
+     * @param parseFieldRequest parse field request
      * @return list of stream field
      */
     List<StreamField> parseFields(ParseFieldRequest parseFieldRequest);
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
index e91e2fc982..3963601a5d 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/stream/InlongStreamServiceImpl.java
@@ -277,6 +277,34 @@ public class InlongStreamServiceImpl implements 
InlongStreamService {
         return streamInfo;
     }
 
+    @Override
+    public InlongStreamBriefInfo getBrief(String groupId, String streamId, 
String operator) {
+        InlongGroupEntity entity = groupMapper.selectByGroupId(groupId);
+        if (entity == null) {
+            throw new BusinessException(ErrorCodeEnum.GROUP_NOT_FOUND);
+        }
+
+        // only the person in charges can query
+        userService.checkUser(entity.getInCharges(), operator,
+                ErrorCodeEnum.GROUP_PERMISSION_DENIED.getMessage());
+        // get stream information
+        InlongStreamEntity streamEntity = 
streamMapper.selectByIdentifier(groupId, streamId);
+        if (streamEntity == null) {
+            throw new BusinessException(ErrorCodeEnum.STREAM_NOT_FOUND);
+        }
+
+        InlongStreamBriefInfo streamInfo = 
CommonBeanUtils.copyProperties(streamEntity, InlongStreamBriefInfo::new);
+        // Processing extParams
+        unpackExtParams(streamEntity.getExtParams(), streamInfo);
+        // Load fields
+        List<StreamField> streamFields = getStreamFields(groupId, streamId);
+        streamInfo.setFieldList(streamFields);
+        List<InlongStreamExtEntity> extEntities = 
streamExtMapper.selectByRelatedId(groupId, streamId);
+        List<InlongStreamExtInfo> extInfos = 
CommonBeanUtils.copyListProperties(extEntities, InlongStreamExtInfo::new);
+        streamInfo.setExtList(extInfos);
+        return streamInfo;
+    }
+
     @Override
     public List<InlongStreamInfo> list(String groupId) {
         LOGGER.debug("begin to list inlong streams by groupId={}", groupId);
@@ -785,6 +813,7 @@ public class InlongStreamServiceImpl implements 
InlongStreamService {
 
     /**
      * Parse fields from CSV format
+     *
      * @param statement CSV statement
      * @return List of StreamField
      */
@@ -826,6 +855,7 @@ public class InlongStreamServiceImpl implements 
InlongStreamService {
         }
         return fields;
     }
+
     private List<StreamField> parseFieldsBySql(String sql) throws 
JSQLParserException {
         CCJSqlParserManager pm = new CCJSqlParserManager();
         Statement statement = pm.parse(new StringReader(sql));
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
index e2e8cf3eb1..9275226795 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/InlongStreamController.java
@@ -104,7 +104,18 @@ public class InlongStreamController {
             @ApiImplicitParam(name = "streamId", dataTypeClass = String.class, 
required = true)
     })
     public Response<InlongStreamInfo> get(@RequestParam String groupId, 
@RequestParam String streamId) {
-        return Response.success(streamService.get(groupId, streamId));
+        return Response.success(streamService.get(groupId, streamId, 
LoginUserUtils.getLoginUser()));
+    }
+
+    @RequestMapping(value = "/stream/getBrief", method = RequestMethod.GET)
+    @ApiOperation(value = "Get inlong stream brief")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "groupId", dataTypeClass = String.class, 
required = true),
+            @ApiImplicitParam(name = "streamId", dataTypeClass = String.class, 
required = true)
+    })
+    public Response<InlongStreamBriefInfo> getBrief(@RequestParam String 
groupId, @RequestParam String streamId) {
+        String operator = LoginUserUtils.getLoginUser().getName();
+        return Response.success(streamService.getBrief(groupId, streamId, 
operator));
     }
 
     @RequestMapping(value = "/stream/list", method = RequestMethod.POST)
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
index 542fea3c62..1553bc4c31 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/controller/openapi/OpenInLongStreamController.java
@@ -68,6 +68,20 @@ public class OpenInLongStreamController {
         return Response.success(streamService.get(groupId, streamId, 
LoginUserUtils.getLoginUser()));
     }
 
+    @RequestMapping(value = "/stream/getBrief", method = RequestMethod.GET)
+    @ApiOperation(value = "Get inlong stream brief")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "groupId", dataTypeClass = String.class, 
required = true),
+            @ApiImplicitParam(name = "streamId", dataTypeClass = String.class, 
required = true)
+    })
+    public Response<InlongStreamBriefInfo> getBrief(@RequestParam String 
groupId, @RequestParam String streamId) {
+        Preconditions.expectNotBlank(groupId, ErrorCodeEnum.INVALID_PARAMETER, 
"groupId cannot be blank");
+        Preconditions.expectNotBlank(streamId, 
ErrorCodeEnum.INVALID_PARAMETER, "streamId cannot be blank");
+        Preconditions.expectNotNull(LoginUserUtils.getLoginUser(), 
ErrorCodeEnum.LOGIN_USER_EMPTY);
+        String operator = LoginUserUtils.getLoginUser().getName();
+        return Response.success(streamService.getBrief(groupId, streamId, 
operator));
+    }
+
     @RequestMapping(value = "/stream/list", method = RequestMethod.POST)
     @ApiOperation(value = "List inlong stream briefs by paginating")
     public Response<List<InlongStreamBriefInfo>> listByCondition(@RequestBody 
InlongStreamPageRequest request) {

Reply via email to