32 lines
		
	
	
		
			919 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			919 B
		
	
	
	
		
			Go
		
	
	
	
// Package models implements various services used for request data
 | 
						|
// validation and applying changes to existing DB models through the app Dao.
 | 
						|
package forms
 | 
						|
 | 
						|
import (
 | 
						|
	"regexp"
 | 
						|
)
 | 
						|
 | 
						|
// base ID value regex pattern
 | 
						|
var idRegex = regexp.MustCompile(`^[^\@\#\$\&\|\.\,\'\"\\\/\s]+$`)
 | 
						|
 | 
						|
// InterceptorNextFunc is a interceptor handler function.
 | 
						|
// Usually used in combination with InterceptorFunc.
 | 
						|
type InterceptorNextFunc[T any] func(t T) error
 | 
						|
 | 
						|
// InterceptorFunc defines a single interceptor function that
 | 
						|
// will execute the provided next func handler.
 | 
						|
type InterceptorFunc[T any] func(next InterceptorNextFunc[T]) InterceptorNextFunc[T]
 | 
						|
 | 
						|
// runInterceptors executes the provided list of interceptors.
 | 
						|
func runInterceptors[T any](
 | 
						|
	data T,
 | 
						|
	next InterceptorNextFunc[T],
 | 
						|
	interceptors ...InterceptorFunc[T],
 | 
						|
) error {
 | 
						|
	for i := len(interceptors) - 1; i >= 0; i-- {
 | 
						|
		next = interceptors[i](next)
 | 
						|
	}
 | 
						|
 | 
						|
	return next(data)
 | 
						|
}
 |