diff --git a/validation/validate.go b/validation/validate.go index 4c1aea2..03403a2 100644 --- a/validation/validate.go +++ b/validation/validate.go @@ -1,29 +1,33 @@ package validation -import "fmt" +import ( + "fmt" -func Validate(input string, format string) bool { - rule, exists := FormatRules[format] + "git.fjla.uk/fred.boniface/barcodes/generation" +) + +func Validate(params generation.Parameters) bool { + rule, exists := FormatRules[string(params.Format)] if !exists { - fmt.Printf("Error: No rule found for format '%s'\n", format) + fmt.Printf("Error: No rule found for format '%s'\n", params.Format) return false } - if uint64(len(input)) < rule.minLength || uint64(len(input)) > rule.maxLength { + if uint64(len(params.Content)) < rule.minLength || uint64(len(params.Content)) > rule.maxLength { fmt.Printf("Validation Error: Length must be between %d and %d\n", rule.minLength, rule.maxLength) return false } - if !rule.charset.MatchString(input) { + if !rule.charset.MatchString(params.Content) { fmt.Println("Validation Error: Contains illegal characters") return false } - if uint64(len(input))%uint64(rule.divisible) != 0 { + if uint64(len(params.Content))%uint64(rule.divisible) != 0 { fmt.Printf("Validation Error: Length must be a multiple of %d", rule.divisible) return false } - fmt.Printf("Validation passed for barcode type %s\n", format) + fmt.Printf("Validation passed for barcode type %s\n", params.Format) return true } diff --git a/web/routeGenerate.go b/web/routeGenerate.go index 337b48f..7314a07 100644 --- a/web/routeGenerate.go +++ b/web/routeGenerate.go @@ -26,7 +26,7 @@ func generateBarcode(w http.ResponseWriter, r *http.Request) { Content: req.Content, } - validate := validation.Validate(req.Content, req.BarcodeType) + validate := validation.Validate(parameters) if !validate { fmt.Println("Validation Failed") http.Error(w, "Validation Failed", http.StatusBadRequest)