pub fn validate_input<T: Validate>(input: &T) -> Result<(), AppError>
Validate a struct and return a formatted AppError if invalid