diff --git a/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java b/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java index ccdec50..2ea706e 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/JHApiExecution.java @@ -6,7 +6,6 @@ import com.jhinno.sdk.openapi.ArgsException; import com.jhinno.sdk.openapi.CommonConstant; import com.jhinno.sdk.openapi.ServiceException; import com.jhinno.sdk.openapi.api.auth.AuthPathConstant; -import com.jhinno.sdk.openapi.api.auth.Token; import com.jhinno.sdk.openapi.client.JHApiClient; import org.apache.commons.lang3.StringUtils; @@ -104,11 +103,11 @@ public class JHApiExecution { String base64 = aes.encryptBase64(String.format("%s,%s", username, System.currentTimeMillis())); params.put("username", base64); String url = JHApiClient.getUrl(AuthPathConstant.AUTH_TOKEN_PATH, params); - Token token = get(url, new TypeReference>() { + Map token = get(url, new TypeReference>>() { }); tokenInfo = new TokenInfo(); tokenInfo.setUserName(username); - tokenInfo.setToken(token.getToken()); + tokenInfo.setToken(token.get("token")); tokenInfo.setCurrentTimestamp(System.currentTimeMillis()); TOKEN_INFO_MAP.put(username, tokenInfo); } 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 1b0c7ee..4a06dee 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,8 +1,6 @@ package com.jhinno.sdk.openapi.api.app; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; /** * 启动会话的请求参数 diff --git a/src/main/java/com/jhinno/sdk/openapi/api/app/AppUrlInfo.java b/src/main/java/com/jhinno/sdk/openapi/api/app/AppUrlInfo.java deleted file mode 100644 index 92e90c8..0000000 --- a/src/main/java/com/jhinno/sdk/openapi/api/app/AppUrlInfo.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.jhinno.sdk.openapi.api.app; - -import lombok.Data; - -/** - * 应用链接URL信息 - * - * @author yanlongqi - * @date 2024/2/4 16:44 - */ -@Data -public class AppUrlInfo { - - - /** - * 应用的url - */ - private String url; -} 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 083a588..88914c4 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 @@ -328,18 +328,18 @@ public class JHAppApiExecution extends JHApiExecution { * * @param username 应户名 * @param appName 应用名 - * @return 应用链接信息 + * @return 应用链接地址 */ - public AppUrlInfo getAppUrl(String username, String appName) { + public String getAppUrl(String username, String appName) { if (StringUtils.isBlank(appName)) { throw new ArgsException("appName为必填字段"); } String path = AppPathConstant.APPS_GET_URL_PATH.replace("{appName}", appName); - List apps = get(path, username, new TypeReference>>() { + List> apps = get(path, username, new TypeReference>>>() { }); if (CollectionUtil.isEmpty(apps)) { throw new ServiceException(path, 500, "应用信息为空!"); } - return apps.get(0); + return apps.get(0).get("url"); } } diff --git a/src/main/java/com/jhinno/sdk/openapi/api/auth/Token.java b/src/main/java/com/jhinno/sdk/openapi/api/auth/Token.java deleted file mode 100644 index 10ccc63..0000000 --- a/src/main/java/com/jhinno/sdk/openapi/api/auth/Token.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.jhinno.sdk.openapi.api.auth; - -import lombok.Data; - -/** - * 请求令牌,用户请求其他接口 - * - * @author yanlongqi - * @date 2024/1/31 10:30 - */ -@Data -public class Token { - - /** - * 令牌 - */ - private String token; - -} diff --git a/src/main/java/com/jhinno/sdk/openapi/api/file/DownloadInfo.java b/src/main/java/com/jhinno/sdk/openapi/api/file/DownloadInfo.java deleted file mode 100644 index 059ff36..0000000 --- a/src/main/java/com/jhinno/sdk/openapi/api/file/DownloadInfo.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.jhinno.sdk.openapi.api.file; - -import lombok.Data; - -/** - * 文件下载地址信息 - * - * @author yanlongqi - * @date 2024/2/5 17:53 - */ - -@Data -public class DownloadInfo { - - /** - * 文件地址 - */ - private String url; - - -} diff --git a/src/main/java/com/jhinno/sdk/openapi/api/file/FilePathInfo.java b/src/main/java/com/jhinno/sdk/openapi/api/file/FilePathInfo.java deleted file mode 100644 index 85454ab..0000000 --- a/src/main/java/com/jhinno/sdk/openapi/api/file/FilePathInfo.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.jhinno.sdk.openapi.api.file; - -import lombok.Data; - -/** - * 文件创建消息 - * - * @author yanlongqi - * @date 2024/2/5 14:17 - */ -@Data -public class FilePathInfo { - - /** - * 新的文件夹的位置 - */ - private String dirPath; -} diff --git a/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java b/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java index 7341db2..513cede 100644 --- a/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java +++ b/src/main/java/com/jhinno/sdk/openapi/api/file/JHFileApiExecution.java @@ -1,5 +1,6 @@ package com.jhinno.sdk.openapi.api.file; +import cn.hutool.core.collection.CollectionUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.jhinno.sdk.openapi.ArgsException; import com.jhinno.sdk.openapi.CommonConstant; @@ -116,7 +117,7 @@ public class JHFileApiExecution extends JHApiExecution { * @param isForce 是否强制创建(非必传,默认:false) * @return 新建后的文件路径 */ - public FilePathInfo mkdir(String username, String dirPath, Boolean isForce) { + public String mkdir(String username, String dirPath, Boolean isForce) { if (StringUtils.isBlank(dirPath)) { throw new ArgsException("dirPath不能为空!"); } @@ -125,8 +126,12 @@ public class JHFileApiExecution extends JHApiExecution { if (isForce != null) { body.put("isForce", isForce.toString()); } - return post(FilePathConstant.FILE_MKDIR_PATH, username, body, new TypeReference>() { + Map result = post(FilePathConstant.FILE_MKDIR_PATH, username, body, new TypeReference>>() { }); + if (CollectionUtil.isEmpty(result)) { + return null; + } + return result.get("dirPath"); } @@ -137,7 +142,7 @@ public class JHFileApiExecution extends JHApiExecution { * @param dirPath 文件路径 * @return 新建后的文件路径 */ - public FilePathInfo mkdir(String username, String dirPath) { + public String mkdir(String username, String dirPath) { return mkdir(username, dirPath, null); } @@ -149,14 +154,18 @@ public class JHFileApiExecution extends JHApiExecution { * @param filePath 文件路径 * @return 新的文件路径 */ - public FilePathInfo mkFile(String username, String filePath) { + public String mkFile(String username, String filePath) { if (StringUtils.isBlank(filePath)) { throw new ArgsException("filePath不能为空!"); } Map body = new HashMap<>(1); body.put("filePath", filePath); - return post(FilePathConstant.FILE_MKFILE_PATH, username, body, new TypeReference>() { + Map result = post(FilePathConstant.FILE_MKFILE_PATH, username, body, new TypeReference>>() { }); + if (CollectionUtil.isEmpty(result)) { + return null; + } + return result.get("dirPath"); } /** @@ -217,15 +226,19 @@ public class JHFileApiExecution extends JHApiExecution { * @param filePath 文件路径 * @return 文件地址信息 */ - public DownloadInfo getFileDownloadUrl(String username, String filePath) { + public String getFileDownloadUrl(String username, String filePath) { if (StringUtils.isBlank(filePath)) { throw new ArgsException("filePath不能为空!"); } Map params = new HashMap<>(1); params.put("filePath", filePath); String path = JHApiClient.getUrl(FilePathConstant.FILE_DOWNLOAD_PATH, params); - return get(path, username, new TypeReference>() { + Map downloadInfo = get(path, username, new TypeReference>>() { }); + if (CollectionUtil.isEmpty(downloadInfo)) { + return null; + } + return downloadInfo.get("url"); } /** diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java new file mode 100644 index 0000000..e6d6b74 --- /dev/null +++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JHJobApiExecution.java @@ -0,0 +1,60 @@ +package com.jhinno.sdk.openapi.api.job; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.json.JSONUtil; +import com.fasterxml.jackson.core.type.TypeReference; +import com.jhinno.sdk.openapi.ArgsException; +import com.jhinno.sdk.openapi.ServiceException; +import com.jhinno.sdk.openapi.api.JHApiExecution; +import com.jhinno.sdk.openapi.api.ResponseResult; +import com.jhinno.sdk.openapi.client.JHApiClient; +import org.apache.commons.lang3.StringUtils; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author yanlongqi + * @date 2024/2/5 18:44 + */ +public class JHJobApiExecution extends JHApiExecution { + + /** + * 获取一个执行器的实例 + * + * @param jhApiClient 请求的客户端 + */ + public JHJobApiExecution(JHApiClient jhApiClient) { + super(jhApiClient); + } + + /** + * 提交作业 + * + * @param username 用户名 + * @param appId 应用id + * @param params 作业提交参数 + * @return 作业id + */ + public String submit(String username, String appId, Map params) { + if (StringUtils.isBlank(appId)) { + throw new ArgsException("appId不能为空"); + } + if (CollectionUtil.isEmpty(params)) { + throw new ArgsException("params不能为空"); + } + Map map = new HashMap<>(2); + map.put("appId", appId); + map.put("params", JSONUtil.toJsonStr(params)); + String path = JHApiClient.getUrl(JobPathConstant.JOB_SUBMIT_PATH, map); + List> result = post(path, username, null, new TypeReference>>>() { + }); + if (CollectionUtil.isEmpty(result)) { + throw new ServiceException(path, 500, "作业提交返回为空!"); + } + return result.get(0).get("jobid"); + } + + +} diff --git a/src/main/java/com/jhinno/sdk/openapi/api/job/JobPathConstant.java b/src/main/java/com/jhinno/sdk/openapi/api/job/JobPathConstant.java new file mode 100644 index 0000000..e41a5ad --- /dev/null +++ b/src/main/java/com/jhinno/sdk/openapi/api/job/JobPathConstant.java @@ -0,0 +1,16 @@ +package com.jhinno.sdk.openapi.api.job; + +/** + * 作业相关接口路径 + * + * @author yanlongqi + * @date 2024/2/5 18:44 + */ +public class JobPathConstant { + + + /** + * 提交作业 + */ + public static final String JOB_SUBMIT_PATH = "/ws/api/jobs/jsub"; +} 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 433f7b3..fc74fb0 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 @@ -1,6 +1,8 @@ package com.jhinno.sdk.openapi.test.app; +import cn.hutool.core.lang.ConsoleTable; import com.jhinno.sdk.openapi.api.app.*; +import com.jhinno.sdk.openapi.api.file.FileInfo; import com.jhinno.sdk.openapi.test.JHClientConfig; import org.junit.Test; @@ -155,8 +157,15 @@ public class AppApiTest { */ @Test public void testGetAppList() { - List appList = jhAppApiExecution.getAppList("lqyan"); - System.out.println(appList); + List appList = jhAppApiExecution.getAppList("jhadmin"); + + ConsoleTable consoleTable = ConsoleTable.create(); + consoleTable.setSBCMode(false); + consoleTable.addHeader("id", "name", "type", "category", "protocol"); + for (AppInfo appInfo : appList) { + consoleTable.addBody(appInfo.getId(), appInfo.getName(), appInfo.getType(), appInfo.getCategory(), appInfo.getProtocol()); + } + consoleTable.print(); } @@ -165,8 +174,7 @@ public class AppApiTest { */ @Test public void testGetAppUrl() { - AppUrlInfo appUrl = jhAppApiExecution.getAppUrl("lqyan", "myjobmana"); - System.out.println(appUrl); + System.out.println(jhAppApiExecution.getAppUrl("jhadmin", "myjobmana")); } } diff --git a/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java b/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java new file mode 100644 index 0000000..ddc0092 --- /dev/null +++ b/src/test/java/com/jhinno/sdk/openapi/test/job/JobApiTest.java @@ -0,0 +1,28 @@ +package com.jhinno.sdk.openapi.test.job; + +import com.jhinno.sdk.openapi.api.job.JHJobApiExecution; +import com.jhinno.sdk.openapi.test.JHClientConfig; +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author yanlongqi + * @date 2024/2/5 18:56 + */ +public class JobApiTest { + + private static final JHJobApiExecution execution = new JHJobApiExecution(JHClientConfig.client); + + /** + * 测试提交作业 + */ + @Test + public void testSubmitJob() { + Map params = new HashMap<>(); + params.put("JH_CAS", "$HOME/aaa.sh"); + params.put("JH_NCPU", "1"); + System.out.println(execution.submit("jhadmin", "common_sub", params)); + } +}