Files
backend/internal/handler/call_handler.go
lafay 2f584c1f2c
All checks were successful
Build Backend / build (push) Successful in 5m10s
Build Backend / build-docker (push) Successful in 2m22s
This is a breaking change that renames the entire project from "Carrot BBS" to "WithYou".
The Go module name has been changed from `carrot_bbs` to `with_you`, which requires
all import paths to be updated throughout the codebase and by external consumers.

BREAKING CHANGE: Module name changed from carrot_bbs to with_you. All imports
and dependencies must be updated from carrot_bbs/* to with_you/*.
2026-04-22 16:01:59 +08:00

61 lines
1.3 KiB
Go

package handler
import (
"strconv"
"github.com/gin-gonic/gin"
"with_you/internal/pkg/response"
"with_you/internal/service"
)
// CallHandler 通话记录处理器
type CallHandler struct {
callService service.CallService
}
// NewCallHandler 创建通话处理器
func NewCallHandler(callService service.CallService) *CallHandler {
return &CallHandler{callService: callService}
}
// GetCallHistory 获取通话记录
// GET /api/v1/calls/history?page=1&page_size=20
func (h *CallHandler) GetCallHistory(c *gin.Context) {
userID, exists := c.Get("user_id")
if !exists {
response.Unauthorized(c, "unauthorized")
return
}
page, _ := strconv.Atoi(c.DefaultQuery("page", "1"))
pageSize, _ := strconv.Atoi(c.DefaultQuery("page_size", "20"))
if page < 1 {
page = 1
}
if pageSize < 1 || pageSize > 50 {
pageSize = 20
}
calls, total, err := h.callService.GetCallHistory(c.Request.Context(), userID.(string), page, pageSize)
if err != nil {
response.InternalServerError(c, "failed to get call history")
return
}
response.Success(c, gin.H{
"items": calls,
"total": total,
"page": page,
})
}
// GetICEServers 获取 ICE 服务器配置
// GET /api/v1/calls/ice-servers
func (h *CallHandler) GetICEServers(c *gin.Context) {
servers := h.callService.GetICEServers()
response.Success(c, gin.H{
"ice_servers": servers,
})
}