package api import ( "fmt" "strconv" ) // intParam parses the query parameter text as an integer from low to high, // or returns fallback if it is empty. Its error is meant for the client. func intParam(text string, fallback, low, high int) (int, error) { if text == "" { return fallback, nil } number, err := strconv.Atoi(text) if err != nil || number < low || number > high { return 0, fmt.Errorf( "parameter must be an integer between %d and %d", low, high, ) } return number, nil }