Files
Stephan D 62a6631b9a
All checks were successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/nats Pipeline was successful
service backend
2025-11-07 18:35:26 +01:00

25 lines
772 B
Go

package refreshtokensdb
import (
"context"
"time"
"github.com/tech/sendico/pkg/db/repository"
"github.com/tech/sendico/pkg/db/repository/builder"
"go.mongodb.org/mongo-driver/bson/primitive"
)
func (db *RefreshTokenDB) RevokeAll(ctx context.Context, accountRef primitive.ObjectID, deviceID string) error {
query := repository.Query().
Filter(repository.AccountField(), accountRef).
And(repository.Query().Comparison(repository.Field("deviceId"), builder.Ne, deviceID)).
And(repository.Query().Comparison(repository.Field(IsRevokedField), builder.Eq, false))
patch := repository.Patch().
Set(repository.Field(ExpiresAtField), time.Now()).
Set(repository.Field(IsRevokedField), true)
_, err := db.Repository.PatchMany(ctx, query, patch)
return err
}