goldenChat base source add

This commit is contained in:
aidev
2026-05-23 15:11:48 +09:00
commit a4ea7762b5
2081 changed files with 1155760 additions and 0 deletions
@@ -0,0 +1,56 @@
package com.goldenchart.controller;
import com.goldenchart.dto.FcmTokenDto;
import com.goldenchart.service.FcmPushService;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/fcm")
@RequiredArgsConstructor
public class FcmController {
private final FcmPushService fcmPushService;
private Long userId(Map<String, String> h) {
String v = h.get("x-user-id");
return v != null ? Long.parseLong(v) : null;
}
private String deviceId(Map<String, String> h) {
return h.getOrDefault("x-device-id", "anonymous");
}
@PostMapping("/token")
public ResponseEntity<Void> register(@RequestHeader Map<String, String> h,
@RequestBody FcmTokenDto body) {
fcmPushService.registerToken(
body.getUserId() != null ? body.getUserId() : userId(h),
body.getDeviceId() != null ? body.getDeviceId() : deviceId(h),
body.getToken());
return ResponseEntity.ok().build();
}
@DeleteMapping("/token")
public ResponseEntity<Void> delete(@RequestHeader Map<String, String> h) {
fcmPushService.deleteByDevice(deviceId(h));
return ResponseEntity.ok().build();
}
@PostMapping("/test")
public ResponseEntity<Map<String, Object>> test(@RequestHeader Map<String, String> h) {
fcmPushService.sendTest(userId(h), deviceId(h));
return ResponseEntity.ok(Map.of(
"ok", true,
"available", fcmPushService.isAvailable()
));
}
@GetMapping("/status")
public ResponseEntity<Map<String, Object>> status() {
return ResponseEntity.ok(Map.of("available", fcmPushService.isAvailable()));
}
}