From 1abf072bc315efd02d02d719cd94b7b0d4eb50f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E4=BC=9F=E4=B9=90?= Date: Wed, 18 Oct 2023 09:46:16 +0800 Subject: [PATCH] auto commit --- internal/endpoint/endpoint.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 internal/endpoint/endpoint.go diff --git a/internal/endpoint/endpoint.go b/internal/endpoint/endpoint.go new file mode 100644 index 0000000..160b694 --- /dev/null +++ b/internal/endpoint/endpoint.go @@ -0,0 +1,34 @@ +package endpoint + +import ( + "net/url" +) + +// NewEndpoint new an Endpoint URL. +func NewEndpoint(scheme, host string) *url.URL { + return &url.URL{Scheme: scheme, Host: host} +} + +// ParseEndpoint parses an Endpoint URL. +func ParseEndpoint(endpoints []string, scheme string) (string, error) { + for _, e := range endpoints { + u, err := url.Parse(e) + if err != nil { + return "", err + } + + if u.Scheme == scheme { + return u.Host, nil + } + } + return "", nil +} + +// Scheme is the scheme of endpoint url. +// examples: scheme="http",isSecure=true get "https" +func Scheme(scheme string, isSecure bool) string { + if isSecure { + return scheme + "s" + } + return scheme +}