Files
ttstd-infinite-canvas/backend/internal/app/outbound_alias.go

82 lines
2.2 KiB
Go

package app
import (
"net/http"
"net/url"
"time"
"infinite-canvas/backend/internal/outbound"
)
// Outbound 符号从 internal/outbound 再导出,保持 service/handler 调用面稳定。
type OutboundHeader = outbound.OutboundHeader
const (
CustomRelayHeadersHeader = outbound.CustomRelayHeadersHeader
DefaultOutboundUserAgent = outbound.DefaultOutboundUserAgent
)
func ValidateOutboundURL(rawURL string) (*url.URL, error) {
parsed, err := outbound.ValidateOutboundURL(rawURL)
return parsed, mapOutboundError(err)
}
func ValidateCustomRelayURL(rawURL string) (*url.URL, error) {
parsed, err := outbound.ValidateCustomRelayURL(rawURL)
return parsed, mapOutboundError(err)
}
func OutboundHTTPClient(timeout time.Duration) *http.Client {
return outbound.OutboundHTTPClient(timeout)
}
func ApplyDefaultOutboundHeaders(req *http.Request) {
outbound.ApplyDefaultOutboundHeaders(req)
}
func NormalizeOutboundHeaders(headers []OutboundHeader) ([]OutboundHeader, error) {
normalized, err := outbound.NormalizeOutboundHeaders(headers)
return normalized, mapOutboundError(err)
}
func ApplyOutboundHeaders(req *http.Request, headers []OutboundHeader) {
outbound.ApplyOutboundHeaders(req, headers)
}
func EncodeOutboundHeadersJSON(headers []OutboundHeader) (string, error) {
encoded, err := outbound.EncodeOutboundHeadersJSON(headers)
return encoded, mapOutboundError(err)
}
func ParseOutboundHeadersJSON(raw string) ([]OutboundHeader, error) {
decoded, err := outbound.ParseOutboundHeadersJSON(raw)
return decoded, mapOutboundError(err)
}
func DecodeRelayOutboundHeaders(encoded string) ([]OutboundHeader, error) {
decoded, err := outbound.DecodeRelayOutboundHeaders(encoded)
return decoded, mapOutboundError(err)
}
func CustomRelayHTTPClient(timeout time.Duration) *http.Client {
return outbound.CustomRelayHTTPClient(timeout)
}
func ValidateOutboundHost(host string) error {
return mapOutboundError(outbound.ValidateOutboundHost(host))
}
func AllowedPrivateUpstreamHost(host string) bool {
return outbound.AllowedPrivateUpstreamHost(host)
}
func mapOutboundError(err error) error {
if err == nil {
return nil
}
if req, ok := err.(*outbound.BadRequestError); ok {
return BadAuthRequest(req.Message)
}
return err
}