summaryrefslogtreecommitdiff
path: root/internal/gtserror/error.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-02-27 13:22:05 +0100
committerLibravatar GitHub <noreply@github.com>2024-02-27 12:22:05 +0000
commit9cadc764b389df970c767608e7a061f3bd777dfa (patch)
treee49218fff3af5800b5305720a04a4f74e7b5c2cb /internal/gtserror/error.go
parent[chore]: Bump github.com/tdewolff/minify/v2 from 2.20.17 to 2.20.18 (#2689) (diff)
downloadgotosocial-9cadc764b389df970c767608e7a061f3bd777dfa.tar.xz
[feature] Add experimental `instance-federation-spam-filter` option (#2685)
* [chore] Move `visibility` to `filter/visibility` * [feature] Add experimental instance-federation-spam-filter option
Diffstat (limited to 'internal/gtserror/error.go')
-rw-r--r--internal/gtserror/error.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/internal/gtserror/error.go b/internal/gtserror/error.go
index 9fd9812dc..dc4c5a504 100644
--- a/internal/gtserror/error.go
+++ b/internal/gtserror/error.go
@@ -37,6 +37,8 @@ const (
wrongTypeKey
smtpKey
malformedKey
+ notRelevantKey
+ spamKey
)
// IsUnretrievable indicates that a call to retrieve a resource
@@ -127,3 +129,30 @@ func IsMalformed(err error) bool {
func SetMalformed(err error) error {
return errors.WithValue(err, malformedKey, struct{}{})
}
+
+// IsNotRelevant checks error for a stored "notRelevant" flag.
+// This error is used when determining whether or not to store
+// + process an incoming AP message.
+func IsNotRelevant(err error) bool {
+ _, ok := errors.Value(err, notRelevantKey).(struct{})
+ return ok
+}
+
+// SetNotRelevant will wrap the given error to store a "notRelevant" flag,
+// returning wrapped error. See IsNotRelevant() for example use-cases.
+func SetNotRelevant(err error) error {
+ return errors.WithValue(err, notRelevantKey, struct{}{})
+}
+
+// IsSpam checks error for a stored "spam" flag. This error is used when
+// determining whether or not to store + process an incoming AP message.
+func IsSpam(err error) bool {
+ _, ok := errors.Value(err, spamKey).(struct{})
+ return ok
+}
+
+// SetSpam will wrap the given error to store a "spam" flag,
+// returning wrapped error. See IsSpam() for example use-cases.
+func SetSpam(err error) error {
+ return errors.WithValue(err, spamKey, struct{}{})
+}