Upstream sync

This commit is contained in:
Senad Uka
2018-05-19 09:53:48 +02:00
parent a9f113b9e9
commit cf5b94edcc

View File

@@ -33,6 +33,20 @@ const (
time10Minutes = 10
)
func isMixedIDValid(id string) bool {
hasUpperCase := false
hasLowerCase := false
hasNumber := false
for _, character := range (id) {
hasUpperCase = hasUpperCase || ((character >= 65) && (character <= 90))
hasLowerCase = hasLowerCase || ((character >= 97) && (character <= 122))
hasNumber = hasNumber || ((character >= 48) && (character <= 57))
}
return (hasUpperCase || hasLowerCase) && hasNumber
}
func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []errors.ValidationError {
var result []errors.ValidationError
var validUUIDregex = regexp.MustCompile(`^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$`)
@@ -43,8 +57,13 @@ func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []er
result = append(result, errors.ValidationError{Field : "user_uuid", Message : "Step #1 - Choose a Member" })
}
if !validUUIDregex.MatchString(requestRide.Origin.ID) {
result = append (result, errors.ValidationError{Field : "origin.id", Message : "Step #1 - Choose a Pickup Address"})
fmt.Println("\n\n", requestRide.Origin.ID, "\n\n")
if !isMixedIDValid(requestRide.Origin.ID) {
//it is not UUID or similar to UUID, let's try with just a number
if originID, err := strconv.Atoi(requestRide.Origin.ID) ; err!= nil || originID <= 0 {
//it is not a number
result = append (result, errors.ValidationError{Field : "origin.id", Message : "Step #1 - Choose a Pickup Address"})
}
}
if !requestRide.UserConsent {
@@ -52,9 +71,13 @@ func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []er
}
//Step #2 validation
if destinationID, err := strconv.Atoi(requestRide.Destination.ID) ; err!= nil || destinationID <= 0 {
result = append (result, errors.ValidationError{Field : "destination.id", Message : "Step #2 - Choose a Provider"})
fmt.Println("\n\n", requestRide.Destination.ID, "\n\n")
if !isMixedIDValid(requestRide.Destination.ID) {
//it is not UUID or similar to UUID, let's try with just a number
if destinationID, err := strconv.Atoi(requestRide.Destination.ID) ; err!= nil || destinationID <= 0 {
result = append (result, errors.ValidationError{Field : "destination.id", Message : "Step #2 - Choose a Provider"})
}
}
//Step #3 validation
@@ -91,8 +114,6 @@ func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []er
isTripTypeValid := true
fmt.Println("\n\n",requestRide.PickupTime,"\n\n")
switch requestRide.TripType.Key {
case tripTypeToVisit:
if requestRide.PickupTime == nil {