Codebase list golang-github-nlopes-slack / 0787dd3d-92d8-4d61-ba3f-e4fc0b58881d/main websocket_utils.go
0787dd3d-92d8-4d61-ba3f-e4fc0b58881d/main

Tree @0787dd3d-92d8-4d61-ba3f-e4fc0b58881d/main (Download .tar.gz)

websocket_utils.go @0787dd3d-92d8-4d61-ba3f-e4fc0b58881d/mainraw · history · blame

package slack

import (
	"net"
	"net/url"
)

var portMapping = map[string]string{"ws": "80", "wss": "443"}

func websocketizeURLPort(orig string) (string, error) {
	urlObj, err := url.ParseRequestURI(orig)
	if err != nil {
		return "", err
	}
	_, _, err = net.SplitHostPort(urlObj.Host)
	if err != nil {
		return urlObj.Scheme + "://" + urlObj.Host + ":" + portMapping[urlObj.Scheme] + urlObj.Path, nil
	}
	return orig, nil
}