diff --git a/im-service/src/main/java/com/xuqm/im/controller/PlatformEventController.java b/im-service/src/main/java/com/xuqm/im/controller/PlatformEventController.java index ca0b4e4..fd503fb 100644 --- a/im-service/src/main/java/com/xuqm/im/controller/PlatformEventController.java +++ b/im-service/src/main/java/com/xuqm/im/controller/PlatformEventController.java @@ -25,17 +25,13 @@ public class PlatformEventController { public ResponseEntity>> token( @RequestParam String appKey, @RequestParam(defaultValue = "platform") String userId) { - try { - String userSig = accountService.generateUserSigToken(appKey, userId, 24 * 60 * 60, ""); - ImAccountService.LoginResult result = accountService.loginWithUserSig(appKey, userId, userSig); - Map data = new LinkedHashMap<>(); - data.put("appKey", appKey); - data.put("userId", userId); - data.put("token", result.token()); - data.put("admin", String.valueOf(result.admin())); - return ResponseEntity.ok(ApiResponse.success(data)); - } catch (Exception e) { - return ResponseEntity.status(500).body(ApiResponse.error(500, e.getMessage())); - } + String userSig = accountService.generateUserSigToken(appKey, userId, 24 * 60 * 60, ""); + ImAccountService.LoginResult result = accountService.loginWithUserSig(appKey, userId, userSig); + Map data = new LinkedHashMap<>(); + data.put("appKey", appKey); + data.put("userId", userId); + data.put("token", result.token()); + data.put("admin", String.valueOf(result.admin())); + return ResponseEntity.ok(ApiResponse.success(data)); } } diff --git a/im-service/src/test/java/com/xuqm/im/controller/PlatformEventControllerTest.java b/im-service/src/test/java/com/xuqm/im/controller/PlatformEventControllerTest.java new file mode 100644 index 0000000..9140eff --- /dev/null +++ b/im-service/src/test/java/com/xuqm/im/controller/PlatformEventControllerTest.java @@ -0,0 +1,29 @@ +package com.xuqm.im.controller; + +import com.xuqm.common.exception.BusinessException; +import com.xuqm.im.service.ImAccountService; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertThrows; + +class PlatformEventControllerTest { + + @Test + void preservesBusinessExceptionForTheSharedErrorHandler() { + BusinessException expected = new BusinessException(404, "应用不存在"); + ImAccountService accountService = new ImAccountService(null, null, null) { + @Override + public String generateUserSigToken(String appKey, String userId, long expireSeconds, String userBuf) { + throw expected; + } + }; + + PlatformEventController controller = new PlatformEventController(accountService); + + BusinessException actual = assertThrows( + BusinessException.class, + () -> controller.token("missing-app", "platform")); + assertSame(expected, actual); + } +}