视频保存
This commit is contained in:
@@ -2,11 +2,11 @@ package controller
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"os"
|
||||
"strconv"
|
||||
|
||||
"github.com/echochat/backend/app/meeting/model"
|
||||
"github.com/echochat/backend/app/meeting/service"
|
||||
"github.com/echochat/backend/config"
|
||||
"github.com/echochat/backend/pkg/logs"
|
||||
"github.com/echochat/backend/pkg/utils"
|
||||
"github.com/gin-gonic/gin"
|
||||
@@ -21,11 +21,17 @@ import (
|
||||
// - GET /rooms/:code/recordings 列出录制(host 或参与者)
|
||||
type MeetingRecordingController struct {
|
||||
recordingSvc *service.MeetingRecordingService
|
||||
cfg *config.MeetingConfig
|
||||
}
|
||||
|
||||
// NewMeetingRecordingController Wire Provider
|
||||
func NewMeetingRecordingController(svc *service.MeetingRecordingService) *MeetingRecordingController {
|
||||
return &MeetingRecordingController{recordingSvc: svc}
|
||||
//
|
||||
// cfg 提供 InternalWebhookSecret,用于校验 media-server 失败回调 X-Internal-Secret header
|
||||
func NewMeetingRecordingController(
|
||||
svc *service.MeetingRecordingService,
|
||||
cfg *config.MeetingConfig,
|
||||
) *MeetingRecordingController {
|
||||
return &MeetingRecordingController{recordingSvc: svc, cfg: cfg}
|
||||
}
|
||||
|
||||
// handleErr 将录制相关领域错误映射成 HTTP 状态码
|
||||
@@ -161,9 +167,11 @@ type mediaServerFailurePayload struct {
|
||||
// - 始终返回 200(webhook 语义:吞错避免 media-server 端反复重试)
|
||||
func (ctl *MeetingRecordingController) MediaServerFailureWebhook(c *gin.Context) {
|
||||
funcName := "controller.meeting_recording_controller.MediaServerFailureWebhook"
|
||||
secret := os.Getenv("INTERNAL_WEBHOOK_SECRET")
|
||||
// 优先 config.meeting.internal_webhook_secret(yaml/viper)。
|
||||
// 环境变量覆盖走 ECHOCHAT_MEETING_INTERNAL_WEBHOOK_SECRET(LoadConfig 已启用 viper.AutomaticEnv)。
|
||||
secret := ctl.cfg.InternalWebhookSecret
|
||||
if secret == "" {
|
||||
logs.Warn(c.Request.Context(), funcName, "INTERNAL_WEBHOOK_SECRET 未配置,拒绝 webhook 请求")
|
||||
logs.Warn(c.Request.Context(), funcName, "meeting.internal_webhook_secret 未配置,拒绝 webhook 请求")
|
||||
utils.ResponseForbidden(c, "internal webhook not configured")
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user