9c753163c2
The console DB cleanup chore has been extended to remove old project member invitation records. Resolves #5816 Change-Id: Id0a748e40f5acf03b9b903265c653b072846ba19
35 lines
1.4 KiB
Go
35 lines
1.4 KiB
Go
// Copyright (C) 2023 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
package console
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"storj.io/common/uuid"
|
|
)
|
|
|
|
// ProjectInvitations exposes methods to manage pending project member invitations in the database.
|
|
//
|
|
// architecture: Database
|
|
type ProjectInvitations interface {
|
|
// Insert is a method for inserting a project member invitation into the database.
|
|
Insert(ctx context.Context, projectID uuid.UUID, email string) (*ProjectInvitation, error)
|
|
// GetByProjectID returns all of the project member invitations for the project specified by the given ID.
|
|
GetByProjectID(ctx context.Context, projectID uuid.UUID) ([]ProjectInvitation, error)
|
|
// GetByEmail returns all of the project member invitations for the specified email address.
|
|
GetByEmail(ctx context.Context, email string) ([]ProjectInvitation, error)
|
|
// Delete is a method for deleting a project member invitation from the database.
|
|
Delete(ctx context.Context, projectID uuid.UUID, email string) error
|
|
// DeleteBefore deletes project member invitations created prior to some time from the database.
|
|
DeleteBefore(ctx context.Context, before time.Time, asOfSystemTimeInterval time.Duration, pageSize int) error
|
|
}
|
|
|
|
// ProjectInvitation represents a pending project member invitation.
|
|
type ProjectInvitation struct {
|
|
ProjectID uuid.UUID
|
|
Email string
|
|
CreatedAt time.Time
|
|
}
|