diff options
Diffstat (limited to 'internal/db/bundb')
| -rw-r--r-- | internal/db/bundb/notification.go | 6 | ||||
| -rw-r--r-- | internal/db/bundb/notification_test.go | 8 | 
2 files changed, 9 insertions, 5 deletions
| diff --git a/internal/db/bundb/notification.go b/internal/db/bundb/notification.go index 034b3b8ec..32523ca24 100644 --- a/internal/db/bundb/notification.go +++ b/internal/db/bundb/notification.go @@ -56,7 +56,7 @@ func (n *notificationDB) GetNotification(ctx context.Context, id string) (*gtsmo  	return &dst, nil  } -func (n *notificationDB) GetNotifications(ctx context.Context, accountID string, limit int, maxID string, sinceID string) ([]*gtsmodel.Notification, db.Error) { +func (n *notificationDB) GetNotifications(ctx context.Context, accountID string, excludeTypes []string, limit int, maxID string, sinceID string) ([]*gtsmodel.Notification, db.Error) {  	// Ensure reasonable  	if limit < 0 {  		limit = 0 @@ -78,6 +78,10 @@ func (n *notificationDB) GetNotifications(ctx context.Context, accountID string,  		q = q.Where("id > ?", sinceID)  	} +	for _, excludeType := range excludeTypes { +		q = q.Where("notification_type != ?", excludeType) +	} +  	q = q.  		Where("target_account_id = ?", accountID).  		Order("id DESC") diff --git a/internal/db/bundb/notification_test.go b/internal/db/bundb/notification_test.go index d79c73ad2..704d3373b 100644 --- a/internal/db/bundb/notification_test.go +++ b/internal/db/bundb/notification_test.go @@ -91,7 +91,7 @@ func (suite *NotificationTestSuite) TestGetNotificationsWithSpam() {  	suite.spamNotifs()  	testAccount := suite.testAccounts["local_account_1"]  	before := time.Now() -	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000") +	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, []string{}, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000")  	suite.NoError(err)  	timeTaken := time.Since(before)  	fmt.Printf("\n\n\n withSpam: got %d notifications in %s\n\n\n", len(notifications), timeTaken) @@ -105,7 +105,7 @@ func (suite *NotificationTestSuite) TestGetNotificationsWithSpam() {  func (suite *NotificationTestSuite) TestGetNotificationsWithoutSpam() {  	testAccount := suite.testAccounts["local_account_1"]  	before := time.Now() -	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000") +	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, []string{}, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000")  	suite.NoError(err)  	timeTaken := time.Since(before)  	fmt.Printf("\n\n\n withoutSpam: got %d notifications in %s\n\n\n", len(notifications), timeTaken) @@ -125,7 +125,7 @@ func (suite *NotificationTestSuite) TestClearNotificationsWithSpam() {  	err := suite.db.ClearNotifications(context.Background(), testAccount.ID)  	suite.NoError(err) -	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000") +	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, []string{}, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000")  	suite.NoError(err)  	suite.NotNil(notifications)  	suite.Empty(notifications) @@ -137,7 +137,7 @@ func (suite *NotificationTestSuite) TestClearNotificationsWithTwoAccounts() {  	err := suite.db.ClearNotifications(context.Background(), testAccount.ID)  	suite.NoError(err) -	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000") +	notifications, err := suite.db.GetNotifications(context.Background(), testAccount.ID, []string{}, 20, "ZZZZZZZZZZZZZZZZZZZZZZZZZZ", "00000000000000000000000000")  	suite.NoError(err)  	suite.NotNil(notifications)  	suite.Empty(notifications) | 
