summaryrefslogtreecommitdiff
path: root/internal/processing
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processing')
-rw-r--r--internal/processing/filters/v1/create.go2
-rw-r--r--internal/processing/filters/v1/update.go2
-rw-r--r--internal/processing/filters/v2/create.go2
-rw-r--r--internal/processing/filters/v2/update.go13
4 files changed, 12 insertions, 7 deletions
diff --git a/internal/processing/filters/v1/create.go b/internal/processing/filters/v1/create.go
index 18367dfce..86019d2a6 100644
--- a/internal/processing/filters/v1/create.go
+++ b/internal/processing/filters/v1/create.go
@@ -43,7 +43,7 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, form
if *form.Irreversible {
filter.Action = gtsmodel.FilterActionHide
}
- if form.ExpiresIn != nil {
+ if form.ExpiresIn != nil && *form.ExpiresIn != 0 {
filter.ExpiresAt = time.Now().Add(time.Second * time.Duration(*form.ExpiresIn))
}
for _, context := range form.Context {
diff --git a/internal/processing/filters/v1/update.go b/internal/processing/filters/v1/update.go
index 81340b4be..15c5de365 100644
--- a/internal/processing/filters/v1/update.go
+++ b/internal/processing/filters/v1/update.go
@@ -67,7 +67,7 @@ func (p *Processor) Update(
action = gtsmodel.FilterActionHide
}
expiresAt := time.Time{}
- if form.ExpiresIn != nil {
+ if form.ExpiresIn != nil && *form.ExpiresIn != 0 {
expiresAt = time.Now().Add(time.Second * time.Duration(*form.ExpiresIn))
}
contextHome := false
diff --git a/internal/processing/filters/v2/create.go b/internal/processing/filters/v2/create.go
index 7095a643c..60dd46f43 100644
--- a/internal/processing/filters/v2/create.go
+++ b/internal/processing/filters/v2/create.go
@@ -41,7 +41,7 @@ func (p *Processor) Create(ctx context.Context, account *gtsmodel.Account, form
Title: form.Title,
Action: typeutils.APIFilterActionToFilterAction(*form.FilterAction),
}
- if form.ExpiresIn != nil {
+ if form.ExpiresIn != nil && *form.ExpiresIn != 0 {
filter.ExpiresAt = time.Now().Add(time.Second * time.Duration(*form.ExpiresIn))
}
for _, context := range form.Context {
diff --git a/internal/processing/filters/v2/update.go b/internal/processing/filters/v2/update.go
index 0d443d58e..d5b5cce01 100644
--- a/internal/processing/filters/v2/update.go
+++ b/internal/processing/filters/v2/update.go
@@ -21,8 +21,6 @@ import (
"context"
"errors"
"fmt"
- "time"
-
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtserror"
@@ -30,6 +28,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/id"
"github.com/superseriousbusiness/gotosocial/internal/typeutils"
"github.com/superseriousbusiness/gotosocial/internal/util"
+ "time"
)
// Update an existing filter for the given account, using the provided parameters.
@@ -68,10 +67,16 @@ func (p *Processor) Update(
filterColumns = append(filterColumns, "action")
filter.Action = typeutils.APIFilterActionToFilterAction(*form.FilterAction)
}
- // TODO: (Vyr) is it possible to unset a filter expiration with this API?
if form.ExpiresIn != nil {
+ expiresIn := *form.ExpiresIn
filterColumns = append(filterColumns, "expires_at")
- filter.ExpiresAt = time.Now().Add(time.Second * time.Duration(*form.ExpiresIn))
+ if expiresIn == 0 {
+ // Unset the expiration date.
+ filter.ExpiresAt = time.Time{}
+ } else {
+ // Update the expiration date.
+ filter.ExpiresAt = time.Now().Add(time.Second * time.Duration(expiresIn))
+ }
}
if form.Context != nil {
filterColumns = append(filterColumns,