feat: 完整游戏运维功能

This commit is contained in:
npc0-hue
2026-07-18 09:04:01 +08:00
parent f3b14b7945
commit 48b8ad8d6c
187 changed files with 16607 additions and 1140 deletions
+47
View File
@@ -0,0 +1,47 @@
package api
import (
"net/http"
"browser.local/platform/dto"
)
// remoteAdapters godoc
// @Summary List or request scoped remote adapters
// @Description Lists declared safe adapters or queues an owner-authorized fenced adapter job.
// @Tags remote-adapters
// @Accept json
// @Produce json
// @Success 200 {object} dto.RemoteAdapterDeclarationListResponse
// @Success 202 {object} dto.RemoteAdapterResponse
// @Failure 400 {object} dto.ErrorResponse
// @Failure 401 {object} dto.ErrorResponse
// @Failure 403 {object} dto.ErrorResponse
// @Router /api/v1/server-instances/{id}/remote-adapters [get]
// @Router /api/v1/server-instances/{id}/remote-adapters [post]
func (h *coreHandlers) remoteAdapters(w http.ResponseWriter, r *http.Request) {
serverInstanceID := r.PathValue("id")
switch r.Method {
case http.MethodGet:
declarations, err := h.core.ListRemoteAdapterDeclarationsForSession(bearerToken(r), serverInstanceID)
if err != nil {
writeServiceError(w, err)
return
}
writeJSON(w, http.StatusOK, dto.RemoteAdapterDeclarationsFromDomain(declarations))
case http.MethodPost:
request, err := decodeJSON[dto.RemoteAdapterRequestBody](r)
if err != nil {
writeDecodeError(w, err)
return
}
result, err := h.core.RequestRemoteAdapterForSession(bearerToken(r), request.ToDomain(serverInstanceID))
if err != nil {
writeServiceError(w, err)
return
}
writeJSON(w, http.StatusAccepted, dto.RemoteAdapterFromDomain(result))
default:
writeMethodNotAllowed(w, "GET, POST")
}
}