Upstream sync
This commit is contained in:
@@ -33,6 +33,20 @@ const (
|
|||||||
time10Minutes = 10
|
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 {
|
func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []errors.ValidationError {
|
||||||
var result []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}$`)
|
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,9 +57,14 @@ func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []er
|
|||||||
result = append(result, errors.ValidationError{Field : "user_uuid", Message : "Step #1 - Choose a Member" })
|
result = append(result, errors.ValidationError{Field : "user_uuid", Message : "Step #1 - Choose a Member" })
|
||||||
}
|
}
|
||||||
|
|
||||||
if !validUUIDregex.MatchString(requestRide.Origin.ID) {
|
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"})
|
result = append (result, errors.ValidationError{Field : "origin.id", Message : "Step #1 - Choose a Pickup Address"})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if !requestRide.UserConsent {
|
if !requestRide.UserConsent {
|
||||||
result = append (result, errors.ValidationError{Field : "user_consent", Message : "Step #1 - Member must consent to Terms of Use"})
|
result = append (result, errors.ValidationError{Field : "user_consent", Message : "Step #1 - Member must consent to Terms of Use"})
|
||||||
@@ -53,9 +72,13 @@ func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []er
|
|||||||
|
|
||||||
//Step #2 validation
|
//Step #2 validation
|
||||||
|
|
||||||
|
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 {
|
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"})
|
result = append (result, errors.ValidationError{Field : "destination.id", Message : "Step #2 - Choose a Provider"})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//Step #3 validation
|
//Step #3 validation
|
||||||
|
|
||||||
@@ -91,8 +114,6 @@ func ValidateRide(requestRide *viewmodel.RideRequest, user *viewmodel.User) []er
|
|||||||
|
|
||||||
isTripTypeValid := true
|
isTripTypeValid := true
|
||||||
|
|
||||||
fmt.Println("\n\n",requestRide.PickupTime,"\n\n")
|
|
||||||
|
|
||||||
switch requestRide.TripType.Key {
|
switch requestRide.TripType.Key {
|
||||||
case tripTypeToVisit:
|
case tripTypeToVisit:
|
||||||
if requestRide.PickupTime == nil {
|
if requestRide.PickupTime == nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user