From fe225c6ba845a55f894fe11383d365bf645f8885 Mon Sep 17 00:00:00 2001 From: lqyan Date: Sat, 3 Feb 2024 13:39:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E4=BC=9A=E8=AF=9D=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + .../sdk/openapi/api/app/AppPathConstant.java | 7 ++++ .../sdk/openapi/api/app/AppStartRequest.java | 4 +- .../openapi/api/app/JHAppApiExecution.java | 34 +++++++++++++++++ .../sdk/openapi/test/app/AppApiTest.java | 38 +++++++++++++++++-- 5 files changed, 79 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 2b1e6af..f3b613e 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ - Java 1.8 or later - Maven +- JH_Appform_6.0_Release ## 安装 diff --git a/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java b/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java index f910120..0129f85 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/app/AppPathConstant.java @@ -1,6 +1,8 @@ package com.jhinno.sdk.openapi.api.app; /** + * 关于会话请求路径的path + * * @author yanlongqi * @date 2024/2/1 16:27 */ @@ -10,4 +12,9 @@ public class AppPathConstant { * 申请会话 */ public static final String APPS_START_PATH = "/ws/api/apps/{appId}/start"; + + /** + * 查询会列表 + */ + public static final String APPS_SESSIONS_ALL_PATH = "/ws/api/apps/sessions/all"; } diff --git a/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartRequest.java b/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartRequest.java index c01e72b..1b0c7ee 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartRequest.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/app/AppStartRequest.java @@ -1,6 +1,8 @@ package com.jhinno.sdk.openapi.api.app; +import lombok.Builder; import lombok.Data; +import lombok.NoArgsConstructor; /** * 启动会话的请求参数 @@ -21,7 +23,7 @@ public class AppStartRequest { /** - * 工作路径 + * 工作路径(会话启动的路径) */ private String cwd; diff --git a/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java b/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java index 0b4f6c0..d40a3a4 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/app/JHAppApiExecution.java @@ -10,6 +10,7 @@ import com.jhinno.sdk.openapi.client.JHApiClient; import org.apache.commons.lang3.StringUtils; import java.util.List; +import java.util.Map; /** * @author yanlongqi @@ -48,4 +49,37 @@ public class JHAppApiExecution extends JHApiExecution { return data.get(0); } + /** + * 使用默认参数启动应用 + * + * @param username 用户名 + * @param appId 应用id + * @return JHClient协议链接 + */ + public AppStartedInfo desktopStart(String username, String appId) { + return this.desktopStart(username, appId, new AppStartRequest()); + } + + /** + * 查询当前用户的会话列表(管理员则查看所有用户的会话) + *

+ * 注:开启密集后,仅能查看自己的会话和比自己密级低的会话 + *

+ * + * @return 会话列表 + */ + public List> getDesktopList(String username) { + ResponseResult>> result = jhApiClient.get( + AppPathConstant.APPS_SESSIONS_ALL_PATH, + getHeaders(username), + new TypeReference>>>() { + }); + if (StringUtils.equals(result.getResult(), CommonConstant.FAILED)) { + throw new ServiceException(AppPathConstant.APPS_SESSIONS_ALL_PATH, result.getCode(), result.getMessage()); + } + return result.getData(); + + } + + } diff --git a/src/test/java/com/jhinno/sdk/openapi/test/app/AppApiTest.java b/src/test/java/com/jhinno/sdk/openapi/test/app/AppApiTest.java index 7a93896..557c981 100644 --- a/src/test/java/com/jhinno/sdk/openapi/test/app/AppApiTest.java +++ b/src/test/java/com/jhinno/sdk/openapi/test/app/AppApiTest.java @@ -6,6 +6,9 @@ import com.jhinno.sdk.openapi.api.app.JHAppApiExecution; import com.jhinno.sdk.openapi.client.JHApiClient; import org.junit.Test; +import java.util.List; +import java.util.Map; + /** * 会话启动相关单元测试 * @@ -15,17 +18,44 @@ import org.junit.Test; public class AppApiTest { - public static final JHApiClient client = JHApiClient.build("https://192.168.87.25/appform"); + /** + * 初始化JHApi客户端 + */ + public static final JHApiClient client = JHApiClient.build("https://192.168.87.25/appform"); + /** - * 测试获取"jhadmin"的Linux桌面会话的JHClient链接 + * 获得一个调用应用接口的执行器 + */ + public static final JHAppApiExecution jhAppApiExecution = new JHAppApiExecution(client); + + /** + * 测测试使用自定义的参数启动jhadmin的Linux桌面 */ @Test public void testStartApp() { - JHAppApiExecution jhAppApiExecution = new JHAppApiExecution(client); - AppStartedInfo appStartedInfo = jhAppApiExecution.desktopStart("jhadmin", "linux_desktop", new AppStartRequest()); + AppStartRequest appStartRequest = new AppStartRequest(); + appStartRequest.setStartNew(true); + AppStartedInfo appStartedInfo = jhAppApiExecution.desktopStart("jhadmin", "linux_desktop", appStartRequest); + System.out.println(appStartedInfo); + } + + /** + * 测试使用默认的参数启动jhadmin的Linux桌面 + */ + @Test + public void testDefaultParamsStartApp() { + AppStartedInfo appStartedInfo = jhAppApiExecution.desktopStart("jhadmin", "linux_desktop"); System.out.println(appStartedInfo); } + /** + * 测试获取用户jhadmin的会话列表 + */ + @Test + public void testGetSessionsList() { + List> desktopList = jhAppApiExecution.getDesktopList("jhadmin"); + System.out.println(desktopList); + } }