summaryrefslogtreecommitdiff
path: root/internal/db/filter.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/filter.go')
-rw-r--r--internal/db/filter.go66
1 files changed, 18 insertions, 48 deletions
diff --git a/internal/db/filter.go b/internal/db/filter.go
index 4962aa1de..89c527a68 100644
--- a/internal/db/filter.go
+++ b/internal/db/filter.go
@@ -23,81 +23,51 @@ import (
"code.superseriousbusiness.org/gotosocial/internal/gtsmodel"
)
-// Filter contains methods for creating, reading, updating, and deleting filters and their keyword and status entries.
+// Filter contains methods for creating, reading, updating,
+// and deleting filters and their keyword and status entries.
type Filter interface {
- //<editor-fold desc="Filter methods">
// GetFilterByID gets one filter with the given id.
GetFilterByID(ctx context.Context, id string) (*gtsmodel.Filter, error)
- // GetFiltersForAccountID gets all filters owned by the given accountID.
- GetFiltersForAccountID(ctx context.Context, accountID string) ([]*gtsmodel.Filter, error)
+ // GetFiltersByAccountID gets all filters owned by the given accountID.
+ GetFiltersByAccountID(ctx context.Context, accountID string) ([]*gtsmodel.Filter, error)
// PutFilter puts a new filter in the database, adding any attached keywords or statuses.
// It uses a transaction to ensure no partial updates.
PutFilter(ctx context.Context, filter *gtsmodel.Filter) error
- // UpdateFilter updates the given filter,
- // upserts any attached keywords and inserts any new statuses (existing statuses cannot be updated),
- // and deletes indicated filter keywords and statuses by ID.
- // It uses a transaction to ensure no partial updates.
- // The column lists are optional; if not specified, all columns will be updated.
- // The filter keyword columns list is *per keyword*.
- // To update all keyword columns, provide a list where every element is an empty list.
- UpdateFilter(
- ctx context.Context,
- filter *gtsmodel.Filter,
- filterColumns []string,
- filterKeywordColumns [][]string,
- deleteFilterKeywordIDs []string,
- deleteFilterStatusIDs []string,
- ) error
-
- // DeleteFilterByID deletes one filter with the given ID.
- // It uses a transaction to ensure no partial updates.
- DeleteFilterByID(ctx context.Context, id string) error
+ // UpdateFilter ...
+ UpdateFilter(ctx context.Context, filter *gtsmodel.Filter, cols ...string) error
- //</editor-fold>
-
- //<editor-fold desc="Filter keyword methods">
+ // DeleteFilter deletes the given filter and all associated FilterKeyword{}
+ // and FilterStatus{} models from the database in a single transaction.
+ DeleteFilter(ctx context.Context, filter *gtsmodel.Filter) error
// GetFilterKeywordByID gets one filter keyword with the given ID.
GetFilterKeywordByID(ctx context.Context, id string) (*gtsmodel.FilterKeyword, error)
- // GetFilterKeywordsForFilterID gets filter keywords from the given filterID.
- GetFilterKeywordsForFilterID(ctx context.Context, filterID string) ([]*gtsmodel.FilterKeyword, error)
-
- // GetFilterKeywordsForAccountID gets filter keywords from the given accountID.
- GetFilterKeywordsForAccountID(ctx context.Context, accountID string) ([]*gtsmodel.FilterKeyword, error)
+ // GetFilterKeywordsByIDs ...
+ GetFilterKeywordsByIDs(ctx context.Context, ids []string) ([]*gtsmodel.FilterKeyword, error)
// PutFilterKeyword inserts a single filter keyword into the database.
PutFilterKeyword(ctx context.Context, filterKeyword *gtsmodel.FilterKeyword) error
// UpdateFilterKeyword updates the given filter keyword.
- // Columns is optional, if not specified all will be updated.
- UpdateFilterKeyword(ctx context.Context, filterKeyword *gtsmodel.FilterKeyword, columns ...string) error
+ UpdateFilterKeyword(ctx context.Context, filterKeyword *gtsmodel.FilterKeyword, cols ...string) error
- // DeleteFilterKeywordByID deletes one filter keyword with the given id.
- DeleteFilterKeywordByID(ctx context.Context, id string) error
-
- //</editor-fold>
-
- //<editor-fold desc="Filter status methods">
+ // DeleteFilterKeywordsByIDs deletes filter keywords with the given ids.
+ DeleteFilterKeywordsByIDs(ctx context.Context, ids ...string) error
// GetFilterStatusByID gets one filter status with the given ID.
GetFilterStatusByID(ctx context.Context, id string) (*gtsmodel.FilterStatus, error)
- // GetFilterStatusesForFilterID gets filter statuses from the given filterID.
- GetFilterStatusesForFilterID(ctx context.Context, filterID string) ([]*gtsmodel.FilterStatus, error)
-
- // GetFilterStatusesForAccountID gets filter keywords from the given accountID.
- GetFilterStatusesForAccountID(ctx context.Context, accountID string) ([]*gtsmodel.FilterStatus, error)
+ // GetFilterStatusesByIDs ...
+ GetFilterStatusesByIDs(ctx context.Context, ids []string) ([]*gtsmodel.FilterStatus, error)
// PutFilterStatus inserts a single filter status into the database.
PutFilterStatus(ctx context.Context, filterStatus *gtsmodel.FilterStatus) error
- // DeleteFilterStatusByID deletes one filter status with the given id.
- DeleteFilterStatusByID(ctx context.Context, id string) error
-
- //</editor-fold>
+ // DeleteFilterStatusesByIDs deletes filter statuses with the given ids.
+ DeleteFilterStatusesByIDs(ctx context.Context, ids ...string) error
}