Files
OpenFlare/Wavelet/internal/apps/openflare/compat/response.go
T
2026-06-18 16:08:48 +08:00

44 lines
1.3 KiB
Go

// Copyright 2026 Arctel.net
// SPDX-License-Identifier: Apache-2.0
// Package compat provides OpenFlare legacy API compatibility helpers.
package compat
import (
"net/http"
"github.com/gin-gonic/gin"
)
// Envelope is the legacy OpenFlare frontend response format.
type Envelope struct {
Success bool `json:"success"`
Message string `json:"message"`
Data any `json:"data"`
}
// OK sends a successful legacy response.
func OK(c *gin.Context, data any) {
c.JSON(http.StatusOK, Envelope{Success: true, Message: "", Data: data})
}
// OKMessage sends a successful legacy response with a message.
func OKMessage(c *gin.Context, message string) {
c.JSON(http.StatusOK, Envelope{Success: true, Message: message, Data: nil})
}
// Fail sends a failed legacy response with HTTP 200 (OpenFlare convention).
func Fail(c *gin.Context, message string) {
c.JSON(http.StatusOK, Envelope{Success: false, Message: message, Data: nil})
}
// Unauthorized sends a 401 legacy response.
func Unauthorized(c *gin.Context, message string) {
c.JSON(http.StatusUnauthorized, Envelope{Success: false, Message: message, Data: nil})
}
// Forbidden sends a 403 legacy response.
func Forbidden(c *gin.Context, message string) {
c.JSON(http.StatusForbidden, Envelope{Success: false, Message: message, Data: nil})
}