datastore

package
v0.0.0-...-5e664b8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 3, 2024 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	StatusActive   = 1
	StatusError    = 2
	StatusArchived = 3
	// OwnershipTypeTemporary indicates file has been uploaded and saved in our system but not assigned ownership to anything. As a result, if this uploadfile is not assigned within 24 hours then the crontab will delete this uploadfile record and the uploaded file.
	OwnershipTypeTemporary = 1
	OwnershipTypeUser      = 4
	OwnershipTypeTenant    = 5
	ContentTypeFile        = 6
	ContentTypeImage       = 7
)
View Source
const (
	OrderAscending  = 1
	OrderDescending = -1
)

Variables

This section is empty.

Functions

This section is empty.

Types

type UploadFile

type UploadFile struct {
	Name                string             `bson:"name" json:"name"`
	Description         string             `bson:"description" json:"description"`
	Filename            string             `bson:"filename" json:"filename"`
	ID                  primitive.ObjectID `bson:"_id" json:"id"`
	OpenAIFileID        string             `bson:"openai_file_id" json:"openai_file_id"` // https://platform.openai.com/docs/assistants/tools/supported-files
	CreatedAt           time.Time          `bson:"created_at,omitempty" json:"created_at,omitempty"`
	CreatedByUserName   string             `bson:"created_by_user_name" json:"created_by_user_name"`
	CreatedByUserID     primitive.ObjectID `bson:"created_by_user_id" json:"created_by_user_id"`
	ModifiedAt          time.Time          `bson:"modified_at,omitempty" json:"modified_at,omitempty"`
	ModifiedByUserName  string             `bson:"modified_by_user_name" json:"modified_by_user_name"`
	ModifiedByUserID    primitive.ObjectID `bson:"modified_by_user_id" json:"modified_by_user_id"`
	ObjectKey           string             `bson:"object_key" json:"object_key"`
	ObjectURL           string             `bson:"object_url" json:"object_url"`
	Status              int8               `bson:"status" json:"status"`
	ContentType         int8               `bson:"content_type" json:"content_type"`
	TenantID            primitive.ObjectID `bson:"tenant_id,omitempty" json:"tenant_id,omitempty"`
	TenantName          string             `bson:"tenant_name" json:"tenant_name"`
	UploadDirectoryID   primitive.ObjectID `bson:"upload_directory_id,omitempty" json:"upload_directory_id,omitempty"`
	UploadDirectoryName string             `bson:"upload_directory_name" json:"upload_directory_name"`
	UserID              primitive.ObjectID `bson:"user_id" json:"user_id"`
	UserName            string             `bson:"user_name" json:"user_name"`
	UserLexicalName     string             `bson:"user_lexical_name" json:"user_lexical_name"`
}

type UploadFileAsSelectOption

type UploadFileAsSelectOption struct {
	Value primitive.ObjectID `bson:"_id" json:"value"` // Extract from the database `_id` field and output through API as `value`.
	Label string             `bson:"name" json:"label"`
}

type UploadFilePaginationListFilter

type UploadFilePaginationListFilter struct {
	// Pagination related.
	Cursor    string
	PageSize  int64
	SortField string
	SortOrder int8 // 1=ascending | -1=descending

	// Filter related.
	TenantID          primitive.ObjectID
	UploadDirectoryID primitive.ObjectID
	Status            int8
	UUIDs             []string
	SearchText        string

	Name        string
	Description string

	CreatedAtGT  time.Time
	CreatedAtGTE time.Time
	CreatedAtLT  time.Time
	CreatedAtLTE time.Time
}

type UploadFilePaginationListResult

type UploadFilePaginationListResult struct {
	Results     []*UploadFile `json:"results"`
	NextCursor  string        `json:"next_cursor"`
	HasNextPage bool          `json:"has_next_page"`
}

UploadFilePaginationListResult represents the paginated list results for the customer records (meaning limited).

type UploadFileStorer

type UploadFileStorer interface {
	Create(ctx context.Context, m *UploadFile) error
	GetByID(ctx context.Context, id primitive.ObjectID) (*UploadFile, error)
	UpdateByID(ctx context.Context, m *UploadFile) error
	ListByFilter(ctx context.Context, m *UploadFilePaginationListFilter) (*UploadFilePaginationListResult, error)
	ListAsSelectOptionByFilter(ctx context.Context, f *UploadFilePaginationListFilter) ([]*UploadFileAsSelectOption, error)
	DeleteByID(ctx context.Context, id primitive.ObjectID) error
	GetOpenAIFileIDsInUploadDirectoryIDs(ctx context.Context, uploadDirectoryIDs []primitive.ObjectID) ([]string, error)
	ListByUploadDirectoryID(ctx context.Context, uploadDirectoryID primitive.ObjectID) (*UploadFilePaginationListResult, error)
	ListByUploadDirectoryIDs(ctx context.Context, uploadDirectoryIDs []primitive.ObjectID) (*UploadFilePaginationListResult, error)
}

UploadFileStorer Interface for uploadfile.

func NewDatastore

func NewDatastore(appCfg *c.Conf, loggerp *slog.Logger, client *mongo.Client) UploadFileStorer

type UploadFileStorerImpl

type UploadFileStorerImpl struct {
	Logger     *slog.Logger
	DbClient   *mongo.Client
	Collection *mongo.Collection
}

func (UploadFileStorerImpl) Create

func (impl UploadFileStorerImpl) Create(ctx context.Context, u *UploadFile) error

func (UploadFileStorerImpl) DeleteByID

func (impl UploadFileStorerImpl) DeleteByID(ctx context.Context, id primitive.ObjectID) error

func (UploadFileStorerImpl) GetByID

func (UploadFileStorerImpl) GetOpenAIFileIDsInUploadDirectoryIDs

func (impl UploadFileStorerImpl) GetOpenAIFileIDsInUploadDirectoryIDs(ctx context.Context, uploadDirectoryIDs []primitive.ObjectID) ([]string, error)

func (UploadFileStorerImpl) ListAsSelectOptionByFilter

func (UploadFileStorerImpl) ListByUploadDirectoryID

func (impl UploadFileStorerImpl) ListByUploadDirectoryID(ctx context.Context, uploadDirectoryID primitive.ObjectID) (*UploadFilePaginationListResult, error)

func (UploadFileStorerImpl) ListByUploadDirectoryIDs

func (impl UploadFileStorerImpl) ListByUploadDirectoryIDs(ctx context.Context, uploadDirectoryIDs []primitive.ObjectID) (*UploadFilePaginationListResult, error)

func (UploadFileStorerImpl) UpdateByID

func (impl UploadFileStorerImpl) UpdateByID(ctx context.Context, m *UploadFile) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL