Skip to content

Commit c5a1397

Browse files
committed
fix: make the Ignore filter really ignoring instead of accepting
1 parent c1f0590 commit c5a1397

File tree

1 file changed

+10
-43
lines changed

1 file changed

+10
-43
lines changed

filters.go

+10-43
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@ package sloghttp
33
import (
44
"net/http"
55
"regexp"
6+
"slices"
67
"strings"
78
)
89

910
type Filter func(w WrapResponseWriter, r *http.Request) bool
1011

1112
// Basic
1213
func Accept(filter Filter) Filter { return filter }
13-
func Ignore(filter Filter) Filter { return filter }
14+
func Ignore(filter Filter) Filter {
15+
return func(w WrapResponseWriter, r *http.Request) bool { return !filter(w, r) }
16+
}
1417

1518
// Method
1619
func AcceptMethod(methods ...string) Filter {
@@ -44,25 +47,13 @@ func IgnoreMethod(methods ...string) Filter {
4447
// Status
4548
func AcceptStatus(statuses ...int) Filter {
4649
return func(w WrapResponseWriter, r *http.Request) bool {
47-
for _, status := range statuses {
48-
if status == w.Status() {
49-
return true
50-
}
51-
}
52-
53-
return false
50+
return slices.Contains(statuses, w.Status())
5451
}
5552
}
5653

5754
func IgnoreStatus(statuses ...int) Filter {
5855
return func(w WrapResponseWriter, r *http.Request) bool {
59-
for _, status := range statuses {
60-
if status == w.Status() {
61-
return false
62-
}
63-
}
64-
65-
return true
56+
return !slices.Contains(statuses, w.Status())
6657
}
6758
}
6859

@@ -109,25 +100,13 @@ func IgnoreStatusLessThanOrEqual(status int) Filter {
109100
// Path
110101
func AcceptPath(urls ...string) Filter {
111102
return func(w WrapResponseWriter, r *http.Request) bool {
112-
for _, url := range urls {
113-
if r.URL.Path == url {
114-
return true
115-
}
116-
}
117-
118-
return false
103+
return slices.Contains(urls, r.URL.Path)
119104
}
120105
}
121106

122107
func IgnorePath(urls ...string) Filter {
123108
return func(w WrapResponseWriter, r *http.Request) bool {
124-
for _, url := range urls {
125-
if r.URL.Path == url {
126-
return false
127-
}
128-
}
129-
130-
return true
109+
return !slices.Contains(urls, r.URL.Path)
131110
}
132111
}
133112

@@ -230,25 +209,13 @@ func IgnorePathMatch(regs ...regexp.Regexp) Filter {
230209
// Host
231210
func AcceptHost(hosts ...string) Filter {
232211
return func(w WrapResponseWriter, r *http.Request) bool {
233-
for _, host := range hosts {
234-
if r.URL.Host == host {
235-
return true
236-
}
237-
}
238-
239-
return false
212+
return slices.Contains(hosts, r.URL.Host)
240213
}
241214
}
242215

243216
func IgnoreHost(hosts ...string) Filter {
244217
return func(w WrapResponseWriter, r *http.Request) bool {
245-
for _, host := range hosts {
246-
if r.URL.Host == host {
247-
return false
248-
}
249-
}
250-
251-
return true
218+
return !slices.Contains(hosts, r.URL.Host)
252219
}
253220
}
254221

0 commit comments

Comments
 (0)