diff --git a/src/main/java/com/kimgo/wepush/controller/HeartbeatController.java b/src/main/java/com/kimgo/wepush/controller/HeartbeatController.java new file mode 100644 index 0000000..05c1515 --- /dev/null +++ b/src/main/java/com/kimgo/wepush/controller/HeartbeatController.java @@ -0,0 +1,32 @@ +package com.kimgo.wepush.controller; + +import com.kimgo.wepush.model.CallInfo; +import com.kimgo.wepush.model.DeviceInfo; +import com.kimgo.wepush.response.ServerResponseEntity; +import com.kimgo.wepush.service.HeartBeatService; +import jakarta.validation.Valid; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class HeartbeatController { + @Autowired + private HeartBeatService heartBeatService; + + @PostMapping("/heartbeat") + public ServerResponseEntity receiveHeartbeat(@RequestHeader("accessToken") String accessToken, + @RequestBody @Valid DeviceInfo deviceInfo) { + // 处理心跳请求 + // 更新客户端的“最后活跃时间” + if(accessToken == null){ + return ServerResponseEntity.fail("accessToken cannot be empty."); + } + if (deviceInfo == null || deviceInfo.hasInvalidFields()){ + return ServerResponseEntity.fail("json body value error."); + } + return heartBeatService.handleHeartbeatSignal(accessToken,deviceInfo); + } +} \ No newline at end of file