Files

51 lines
1.1 KiB
Go

package websocket
import (
"net/http"
"strings"
)
// ParseDBCFromRequest retrieves DBC version from the "fisker-dbc" field
//
// located in header of request
func ParseDBCFromRequest(r *http.Request) string {
return r.Header.Get("Fisker-Dbc-Sha256")
}
func ParseICCIDFromRequest(r *http.Request) (string, error) {
iccid := strings.TrimSpace(r.Header.Get("X-ICCID"))
// ok, err := validator.ValidateICCIDSimple(iccid)
// if err != nil {
// return iccid, err
// } else if !ok {
// return iccid, errors.Errorf("%s failed to pass ICCID validation", iccid)
// }
return iccid, nil
}
// ParseDeviceAndVersionFromRequest parses device type and version
//
// of client from User-Agent field in header
func ParseDeviceAndVersionFromRequest(r *http.Request) (string, string) {
var device string
var version string
userAgent := r.Header.Get("User-Agent")
specs := strings.Split(userAgent, " ")
device = strings.ToLower(specs[0])
switch len(specs) {
case 5:
version = specs[3]
case 4:
version = specs[2]
case 2:
version = specs[1]
}
return device, version
}