Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

72
pkg/validator/vin.go Normal file
View File

@@ -0,0 +1,72 @@
package validator
import (
"regexp"
"strings"
"github.com/go-playground/validator/v10"
"github.com/pkg/errors"
"fiskerinc.com/modules/vindecoder"
)
func validateVIN(fl validator.FieldLevel) bool {
ok := ValidateVINSimple(fl.Field().String())
return ok
}
func validateVINs(fl validator.FieldLevel) bool {
vins := strings.Split(fl.Field().String(), ",")
for _, vin := range vins {
ok := vindecoder.ValidateVINSimple(vin)
if !ok {
return false
}
ok = vindecoder.VerifyVinCheckDigit(vin)
if !ok {
return false
}
}
return true
}
func validateVINSuffix(fl validator.FieldLevel) bool {
ok, err := ValidateVINSuffixSimple(fl.Field().String())
return ok && err == nil
}
func ValidateVINSuffixSimple(vin string) (bool, error) {
matched, err := regexp.Match(`^[a-hj-npr-zA-HJ-NPR-Z0-9]{7}$`, []byte(vin))
if err != nil {
return matched, errors.WithStack(err)
}
return matched, nil
}
func validateICCID(fl validator.FieldLevel) bool {
ok, err := ValidateICCIDSimple(fl.Field().String())
return ok && err == nil
}
func ValidateICCIDSimple(iccid string) (bool, error) {
matched, err := regexp.Match(`^[0-9]{5,50}F{0,1}$`, []byte(iccid))
if err != nil {
return matched, errors.Wrapf(err, "")
}
return matched, nil
}
func validateVinCheckDigit(fl validator.FieldLevel) bool {
var vin = fl.Field().String()
return vindecoder.VerifyVinCheckDigit(vin)
}
func ValidateVINSimple(vin string) (valid bool) {
return vindecoder.ValidateVINSimple(vin)
}