package http import ( "net/http" "forge.cadoles.com/cadoles/bouncer/internal/rule" "github.com/expr-lang/expr" ) func WithRequestFuncs(r *http.Request) rule.OptionFunc { return func(opts *rule.Options) { funcs := []expr.Option{ setRequestURL(r), setRequestHeaderFunc(r), addRequestHeaderFunc(r), delRequestHeadersFunc(r), setRequestHostFunc(r), } if len(opts.Expr) == 0 { opts.Expr = make([]expr.Option, 0) } opts.Expr = append(opts.Expr, funcs...) } } func WithResponseFuncs(r *http.Response) rule.OptionFunc { return func(opts *rule.Options) { funcs := []expr.Option{ setResponseHeaderFunc(r), addResponseHeaderFunc(r), delResponseHeadersFunc(r), } if len(opts.Expr) == 0 { opts.Expr = make([]expr.Option, 0) } opts.Expr = append(opts.Expr, funcs...) } }