Codebase list golang-github-nlopes-slack / 35f89b01-bac1-45d4-b648-298316144d98/main websocket_utils.go
35f89b01-bac1-45d4-b648-298316144d98/main

Tree @35f89b01-bac1-45d4-b648-298316144d98/main (Download .tar.gz)

websocket_utils.go @35f89b01-bac1-45d4-b648-298316144d98/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
}