memos/store/driver.go

99 lines
4.6 KiB
Go
Raw Normal View History

package store
import (
"context"
2023-09-29 04:15:54 +03:00
"database/sql"
storepb "github.com/usememos/memos/proto/gen/store"
)
2023-10-05 18:11:29 +03:00
// Driver is an interface for store driver.
// It contains all methods that store database driver should implement.
type Driver interface {
2023-09-29 04:15:54 +03:00
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)
2023-11-06 03:33:31 +03:00
// MigrationHistory model related methods.
FindMigrationHistoryList(ctx context.Context, find *FindMigrationHistory) ([]*MigrationHistory, error)
UpsertMigrationHistory(ctx context.Context, upsert *UpsertMigrationHistory) (*MigrationHistory, error)
2023-10-05 18:11:29 +03:00
// Activity model related methods.
CreateActivity(ctx context.Context, create *Activity) (*Activity, error)
2023-10-26 20:11:41 +03:00
ListActivities(ctx context.Context, find *FindActivity) ([]*Activity, error)
2023-10-05 18:11:29 +03:00
// 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
2023-10-05 18:11:29 +03:00
// 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)
2023-10-05 18:11:29 +03:00
// 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
2023-10-05 18:11:29 +03:00
// 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
2023-10-05 18:11:29 +03:00
// SystemSetting model related methods.
UpsertSystemSetting(ctx context.Context, upsert *SystemSetting) (*SystemSetting, error)
ListSystemSettings(ctx context.Context, find *FindSystemSetting) ([]*SystemSetting, error)
2023-10-05 18:11:29 +03:00
// 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
2023-10-05 18:11:29 +03:00
// UserSetting model related methods.
UpsertUserSetting(ctx context.Context, upsert *UserSetting) (*UserSetting, error)
ListUserSettings(ctx context.Context, find *FindUserSetting) ([]*UserSetting, error)
UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSetting) (*storepb.UserSetting, error)
ListUserSettingsV1(ctx context.Context, find *FindUserSettingV1) ([]*storepb.UserSetting, error)
2023-09-26 14:17:17 +03:00
2023-10-05 18:11:29 +03:00
// IdentityProvider model related methods.
2023-09-26 14:17:17 +03:00
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
2023-09-26 14:37:22 +03:00
2023-10-05 18:11:29 +03:00
// Tag model related methods.
2023-09-26 14:37:22 +03:00
UpsertTag(ctx context.Context, upsert *Tag) (*Tag, error)
ListTags(ctx context.Context, find *FindTag) ([]*Tag, error)
DeleteTag(ctx context.Context, delete *DeleteTag) error
2023-09-26 14:43:55 +03:00
2023-10-05 18:11:29 +03:00
// Storage model related methods.
2023-09-26 14:43:55 +03:00
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
2023-10-26 20:10:19 +03:00
// Inbox model related methods.
CreateInbox(ctx context.Context, create *Inbox) (*Inbox, error)
2023-10-27 19:08:42 +03:00
ListInboxes(ctx context.Context, find *FindInbox) ([]*Inbox, error)
2023-10-26 20:10:19 +03:00
UpdateInbox(ctx context.Context, update *UpdateInbox) (*Inbox, error)
DeleteInbox(ctx context.Context, delete *DeleteInbox) error
2023-11-24 17:45:38 +03:00
// 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
}