add rejectfollowrequest to db

This commit is contained in:
tsmethurst 2021-10-15 11:21:12 +02:00
commit 6c65349e5a
2 changed files with 30 additions and 0 deletions

View file

@ -255,6 +255,31 @@ func (r *relationshipDB) AcceptFollowRequest(ctx context.Context, originAccountI
return follow, nil
}
func (r *relationshipDB) RejectFollowRequest(ctx context.Context, originAccountID string, targetAccountID string) (*gtsmodel.FollowRequest, db.Error) {
// first get the follow request out of the database
fr := &gtsmodel.FollowRequest{}
if err := r.conn.
NewSelect().
Model(fr).
Where("account_id = ?", originAccountID).
Where("target_account_id = ?", targetAccountID).
Scan(ctx); err != nil {
return nil, r.conn.ProcessError(err)
}
// now delete it from the database by ID
if _, err := r.conn.
NewDelete().
Model(&gtsmodel.FollowRequest{ID: fr.ID}).
WherePK().
Exec(ctx); err != nil {
return nil, r.conn.ProcessError(err)
}
// return the deleted follow request
return fr, nil
}
func (r *relationshipDB) GetAccountFollowRequests(ctx context.Context, accountID string) ([]*gtsmodel.FollowRequest, db.Error) {
followRequests := []*gtsmodel.FollowRequest{}

View file

@ -54,6 +54,11 @@ type Relationship interface {
// It will return the newly created follow for further processing.
AcceptFollowRequest(ctx context.Context, originAccountID string, targetAccountID string) (*gtsmodel.Follow, Error)
// RejectFollowRequest fetches a follow request from the database, and then deletes it.
//
// The deleted follow request will be returned so that further processing can be done on it.
RejectFollowRequest(ctx context.Context, originAccountID string, targetAccountID string) (*gtsmodel.FollowRequest, Error)
// GetAccountFollowRequests returns all follow requests targeting the given account.
GetAccountFollowRequests(ctx context.Context, accountID string) ([]*gtsmodel.FollowRequest, Error)