continue work on notifs, tidy some stuff up elsewhere

This commit is contained in:
tsmethurst
2021-05-27 00:01:05 +02:00
parent 5853179728
commit 6eaeaa4d18
28 changed files with 1596 additions and 1197 deletions

View File

@ -21,6 +21,7 @@ package message
import (
"fmt"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
)
@ -28,11 +29,58 @@ func (p *processor) notifyStatus(status *gtsmodel.Status) error {
return nil
}
func (p *processor) notifyFollow(follow *gtsmodel.Follow) error {
func (p *processor) notifyFollowRequest(followRequest *gtsmodel.FollowRequest, receivingAccount *gtsmodel.Account) error {
// return if this isn't a local account
if receivingAccount.Domain != "" {
return nil
}
notif := &gtsmodel.Notification{
NotificationType: gtsmodel.NotificationFollowRequest,
TargetAccountID: followRequest.TargetAccountID,
OriginAccountID: followRequest.AccountID,
}
if err := p.db.Put(notif); err != nil {
return fmt.Errorf("notifyFollowRequest: error putting notification in database: %s", err)
}
return nil
}
func (p *processor) notifyFave(fave *gtsmodel.StatusFave) error {
func (p *processor) notifyFollow(follow *gtsmodel.Follow, receivingAccount *gtsmodel.Account) error {
// return if this isn't a local account
if receivingAccount.Domain != "" {
return nil
}
// first remove the follow request notification
if err := p.db.DeleteWhere([]db.Where{
{Key: "notification_type", Value: gtsmodel.NotificationFollowRequest},
{Key: "target_account_id", Value: follow.TargetAccountID},
{Key: "origin_account_id", Value: follow.AccountID},
}, &gtsmodel.Notification{}); err != nil {
return fmt.Errorf("notifyFollow: error removing old follow request notification from database: %s", err)
}
// now create the new follow notification
notif := &gtsmodel.Notification{
NotificationType: gtsmodel.NotificationFollow,
TargetAccountID: follow.TargetAccountID,
OriginAccountID: follow.AccountID,
}
if err := p.db.Put(notif); err != nil {
return fmt.Errorf("notifyFollow: error putting notification in database: %s", err)
}
return nil
}
func (p *processor) notifyFave(fave *gtsmodel.StatusFave, receivingAccount *gtsmodel.Account) error {
// return if this isn't a local account
if receivingAccount.Domain != "" {
return nil
}
notif := &gtsmodel.Notification{
NotificationType: gtsmodel.NotificationFave,
@ -42,7 +90,7 @@ func (p *processor) notifyFave(fave *gtsmodel.StatusFave) error {
}
if err := p.db.Put(notif); err != nil {
return fmt.Errorf("notifyFave: error putting fave in database: %s", err)
return fmt.Errorf("notifyFave: error putting notification in database: %s", err)
}
return nil