mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-01-10 00:43:36 +02:00
45 lines
1.6 KiB
Go
45 lines
1.6 KiB
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"
|
|
|
|
"github.com/pocketbase/pocketbase/models"
|
|
)
|
|
|
|
// base ID value regex pattern
|
|
var idRegex = regexp.MustCompile(`^[^\@\#\$\&\|\.\,\'\"\\\/\s]+$`)
|
|
|
|
// InterceptorNextFunc is a interceptor handler function.
|
|
// Usually used in combination with InterceptorFunc.
|
|
type InterceptorNextFunc = func() error
|
|
|
|
// InterceptorFunc defines a single interceptor function that
|
|
// will execute the provided next func handler.
|
|
type InterceptorFunc func(next InterceptorNextFunc) InterceptorNextFunc
|
|
|
|
// runInterceptors executes the provided list of interceptors.
|
|
func runInterceptors(next InterceptorNextFunc, interceptors ...InterceptorFunc) error {
|
|
for i := len(interceptors) - 1; i >= 0; i-- {
|
|
next = interceptors[i](next)
|
|
}
|
|
return next()
|
|
}
|
|
|
|
// InterceptorWithRecordNextFunc is a Record interceptor handler function.
|
|
// Usually used in combination with InterceptorWithRecordFunc.
|
|
type InterceptorWithRecordNextFunc = func(record *models.Record) error
|
|
|
|
// InterceptorWithRecordFunc defines a single Record interceptor function
|
|
// that will execute the provided next func handler.
|
|
type InterceptorWithRecordFunc func(next InterceptorWithRecordNextFunc) InterceptorWithRecordNextFunc
|
|
|
|
// runInterceptorsWithRecord executes the provided list of Record interceptors.
|
|
func runInterceptorsWithRecord(record *models.Record, next InterceptorWithRecordNextFunc, interceptors ...InterceptorWithRecordFunc) error {
|
|
for i := len(interceptors) - 1; i >= 0; i-- {
|
|
next = interceptors[i](next)
|
|
}
|
|
return next(record)
|
|
}
|