mirror of
				https://github.com/usememos/memos.git
				synced 2025-11-04 12:27:35 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package store
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"database/sql"
 | 
						|
 | 
						|
	storepb "github.com/usememos/memos/proto/gen/store"
 | 
						|
)
 | 
						|
 | 
						|
// Driver is an interface for store driver.
 | 
						|
// It contains all methods that store database driver should implement.
 | 
						|
type Driver interface {
 | 
						|
	GetDB() *sql.DB
 | 
						|
	Close() error
 | 
						|
 | 
						|
	Migrate(ctx context.Context) error
 | 
						|
	Vacuum(ctx context.Context) error
 | 
						|
	BackupTo(ctx context.Context, filename string) error
 | 
						|
 | 
						|
	// current file is driver
 | 
						|
	GetCurrentDBSize(ctx context.Context) (int64, error)
 | 
						|
 | 
						|
	// MigrationHistory model related methods.
 | 
						|
	FindMigrationHistoryList(ctx context.Context, find *FindMigrationHistory) ([]*MigrationHistory, error)
 | 
						|
	UpsertMigrationHistory(ctx context.Context, upsert *UpsertMigrationHistory) (*MigrationHistory, error)
 | 
						|
 | 
						|
	// Activity model related methods.
 | 
						|
	CreateActivity(ctx context.Context, create *Activity) (*Activity, error)
 | 
						|
	ListActivities(ctx context.Context, find *FindActivity) ([]*Activity, error)
 | 
						|
 | 
						|
	// Resource model related methods.
 | 
						|
	CreateResource(ctx context.Context, create *Resource) (*Resource, error)
 | 
						|
	ListResources(ctx context.Context, find *FindResource) ([]*Resource, error)
 | 
						|
	UpdateResource(ctx context.Context, update *UpdateResource) (*Resource, error)
 | 
						|
	DeleteResource(ctx context.Context, delete *DeleteResource) error
 | 
						|
 | 
						|
	// Memo model related methods.
 | 
						|
	CreateMemo(ctx context.Context, create *Memo) (*Memo, error)
 | 
						|
	ListMemos(ctx context.Context, find *FindMemo) ([]*Memo, error)
 | 
						|
	UpdateMemo(ctx context.Context, update *UpdateMemo) error
 | 
						|
	DeleteMemo(ctx context.Context, delete *DeleteMemo) error
 | 
						|
	FindMemosVisibilityList(ctx context.Context, memoIDs []int32) ([]Visibility, error)
 | 
						|
 | 
						|
	// MemoRelation model related methods.
 | 
						|
	UpsertMemoRelation(ctx context.Context, create *MemoRelation) (*MemoRelation, error)
 | 
						|
	ListMemoRelations(ctx context.Context, find *FindMemoRelation) ([]*MemoRelation, error)
 | 
						|
	DeleteMemoRelation(ctx context.Context, delete *DeleteMemoRelation) error
 | 
						|
 | 
						|
	// MemoOrganizer model related methods.
 | 
						|
	UpsertMemoOrganizer(ctx context.Context, upsert *MemoOrganizer) (*MemoOrganizer, error)
 | 
						|
	ListMemoOrganizer(ctx context.Context, find *FindMemoOrganizer) ([]*MemoOrganizer, error)
 | 
						|
	DeleteMemoOrganizer(ctx context.Context, delete *DeleteMemoOrganizer) error
 | 
						|
 | 
						|
	// SystemSetting model related methods.
 | 
						|
	UpsertSystemSetting(ctx context.Context, upsert *SystemSetting) (*SystemSetting, error)
 | 
						|
	ListSystemSettings(ctx context.Context, find *FindSystemSetting) ([]*SystemSetting, error)
 | 
						|
 | 
						|
	// User model related methods.
 | 
						|
	CreateUser(ctx context.Context, create *User) (*User, error)
 | 
						|
	UpdateUser(ctx context.Context, update *UpdateUser) (*User, error)
 | 
						|
	ListUsers(ctx context.Context, find *FindUser) ([]*User, error)
 | 
						|
	DeleteUser(ctx context.Context, delete *DeleteUser) error
 | 
						|
 | 
						|
	// UserSetting model related methods.
 | 
						|
	UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting) (*storepb.UserSetting, error)
 | 
						|
	ListUserSettings(ctx context.Context, find *FindUserSetting) ([]*storepb.UserSetting, error)
 | 
						|
 | 
						|
	// IdentityProvider model related methods.
 | 
						|
	CreateIdentityProvider(ctx context.Context, create *IdentityProvider) (*IdentityProvider, error)
 | 
						|
	ListIdentityProviders(ctx context.Context, find *FindIdentityProvider) ([]*IdentityProvider, error)
 | 
						|
	UpdateIdentityProvider(ctx context.Context, update *UpdateIdentityProvider) (*IdentityProvider, error)
 | 
						|
	DeleteIdentityProvider(ctx context.Context, delete *DeleteIdentityProvider) error
 | 
						|
 | 
						|
	// Tag model related methods.
 | 
						|
	UpsertTag(ctx context.Context, upsert *Tag) (*Tag, error)
 | 
						|
	ListTags(ctx context.Context, find *FindTag) ([]*Tag, error)
 | 
						|
	DeleteTag(ctx context.Context, delete *DeleteTag) error
 | 
						|
 | 
						|
	// Storage model related methods.
 | 
						|
	CreateStorage(ctx context.Context, create *Storage) (*Storage, error)
 | 
						|
	ListStorages(ctx context.Context, find *FindStorage) ([]*Storage, error)
 | 
						|
	UpdateStorage(ctx context.Context, update *UpdateStorage) (*Storage, error)
 | 
						|
	DeleteStorage(ctx context.Context, delete *DeleteStorage) error
 | 
						|
 | 
						|
	// Inbox model related methods.
 | 
						|
	CreateInbox(ctx context.Context, create *Inbox) (*Inbox, error)
 | 
						|
	ListInboxes(ctx context.Context, find *FindInbox) ([]*Inbox, error)
 | 
						|
	UpdateInbox(ctx context.Context, update *UpdateInbox) (*Inbox, error)
 | 
						|
	DeleteInbox(ctx context.Context, delete *DeleteInbox) error
 | 
						|
 | 
						|
	// Webhook model related methods.
 | 
						|
	CreateWebhook(ctx context.Context, create *storepb.Webhook) (*storepb.Webhook, error)
 | 
						|
	ListWebhooks(ctx context.Context, find *FindWebhook) ([]*storepb.Webhook, error)
 | 
						|
	UpdateWebhook(ctx context.Context, update *UpdateWebhook) (*storepb.Webhook, error)
 | 
						|
	DeleteWebhook(ctx context.Context, delete *DeleteWebhook) error
 | 
						|
}
 |