123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package model
- import (
- "net/url"
- "strings"
- )
- type Environment struct {
- Model
- Name string `json:"name"`
- URL string `json:"url"`
- Token string `json:"token"`
- Enabled bool `json:"enabled" gorm:"default:false"`
- }
- func (e *Environment) GetUrl(uri string) (decodedUri string, err error) {
- baseUrl, err := url.Parse(e.URL)
- if err != nil {
- return
- }
- u, err := url.JoinPath(baseUrl.String(), uri)
- if err != nil {
- return
- }
- decodedUri, err = url.QueryUnescape(u)
- if err != nil {
- return
- }
- return
- }
- func (e *Environment) GetWebSocketURL(uri string) (decodedUri string, err error) {
- baseUrl, err := url.Parse(e.URL)
- if err != nil {
- return
- }
- defaultPort := ""
- if baseUrl.Port() == "" {
- switch baseUrl.Scheme {
- default:
- fallthrough
- case "http":
- defaultPort = "80"
- case "https":
- defaultPort = "443"
- }
- baseUrl.Host = baseUrl.Hostname() + ":" + defaultPort
- }
- u, err := url.JoinPath(baseUrl.String(), uri)
- if err != nil {
- return
- }
- decodedUri, err = url.QueryUnescape(u)
- if err != nil {
- return
- }
- // http will be replaced with ws, https will be replaced with wss
- decodedUri = strings.ReplaceAll(decodedUri, "http", "ws")
- return
- }
|