6b65b7e7d0
This change removes the obsolete project member paging code. Previously, we implemented functionality for including project invitations in pages of project members. However, the satellite frontend still expected API responses to use the old paging style, so the related code could not be removed right away. Now that the frontend has been updated, this code is no longer necessary. References #5855 Change-Id: I12fdaaeb869977c4d87a0d50b9a7b11c68552c82
73 lines
2.2 KiB
Go
73 lines
2.2 KiB
Go
// Copyright (C) 2019 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
package console
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"storj.io/common/uuid"
|
|
)
|
|
|
|
// ProjectMembers exposes methods to manage ProjectMembers table in database.
|
|
//
|
|
// architecture: Database
|
|
type ProjectMembers interface {
|
|
// GetByMemberID is a method for querying project members from the database by memberID.
|
|
GetByMemberID(ctx context.Context, memberID uuid.UUID) ([]ProjectMember, error)
|
|
// GetPagedWithInvitationsByProjectID is a method for querying project members and invitations from the database by projectID and cursor.
|
|
GetPagedWithInvitationsByProjectID(ctx context.Context, projectID uuid.UUID, cursor ProjectMembersCursor) (*ProjectMembersPage, error)
|
|
// Insert is a method for inserting project member into the database.
|
|
Insert(ctx context.Context, memberID, projectID uuid.UUID) (*ProjectMember, error)
|
|
// Delete is a method for deleting project member by memberID and projectID from the database.
|
|
Delete(ctx context.Context, memberID, projectID uuid.UUID) error
|
|
}
|
|
|
|
// ProjectMember is a database object that describes ProjectMember entity.
|
|
type ProjectMember struct {
|
|
// FK on Users table.
|
|
MemberID uuid.UUID
|
|
// FK on Projects table.
|
|
ProjectID uuid.UUID
|
|
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
// ProjectMembersCursor holds info for project members cursor pagination.
|
|
type ProjectMembersCursor struct {
|
|
Search string
|
|
Limit uint
|
|
Page uint
|
|
Order ProjectMemberOrder
|
|
OrderDirection OrderDirection
|
|
}
|
|
|
|
// ProjectMembersPage represents a page of project members and invitations.
|
|
type ProjectMembersPage struct {
|
|
ProjectMembers []ProjectMember
|
|
ProjectInvitations []ProjectInvitation
|
|
|
|
Search string
|
|
Limit uint
|
|
Order ProjectMemberOrder
|
|
OrderDirection OrderDirection
|
|
Offset uint64
|
|
|
|
PageCount uint
|
|
CurrentPage uint
|
|
TotalCount uint64
|
|
}
|
|
|
|
// ProjectMemberOrder is used for querying project members in specified order.
|
|
type ProjectMemberOrder int8
|
|
|
|
const (
|
|
// Name indicates that we should order by full name.
|
|
Name ProjectMemberOrder = 1
|
|
// Email indicates that we should order by email.
|
|
Email ProjectMemberOrder = 2
|
|
// Created indicates that we should order by created date.
|
|
Created ProjectMemberOrder = 3
|
|
)
|