2026-07-13 21:28:41 +08:00

28 lines
916 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package service
import (
"context"
"strings"
roomv1 "hyapp.local/api/proto/room/v1"
"hyapp/pkg/roomid"
"hyapp/pkg/xerr"
)
// ResolveRoomAppCode 让已验签的腾讯 RTC 回调从房间事实解析租户。
// room-service 是房间归属 ownergateway 不应信任 URL 中可伪造、也容易写死的 app_code。
func (s *Service) ResolveRoomAppCode(ctx context.Context, req *roomv1.ResolveRoomAppCodeRequest) (*roomv1.ResolveRoomAppCodeResponse, error) {
roomID := strings.TrimSpace(req.GetRoomId())
if !roomid.ValidStringID(roomID) {
return nil, xerr.New(xerr.InvalidArgument, "room_id is invalid")
}
meta, exists, err := s.repository.GetRoomMetaByGlobalID(ctx, roomID)
if err != nil {
return nil, err
}
if !exists || strings.TrimSpace(meta.AppCode) == "" {
return nil, xerr.New(xerr.NotFound, "room not found")
}
return &roomv1.ResolveRoomAppCodeResponse{AppCode: meta.AppCode}, nil
}