diff options
Diffstat (limited to 'internal/db/filter.go')
| -rw-r--r-- | internal/db/filter.go | 66 |
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 } |
