driver.go 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package store
  2. import (
  3. "context"
  4. "database/sql"
  5. storepb "github.com/usememos/memos/proto/gen/store"
  6. )
  7. // Driver is an interface for store driver.
  8. // It contains all methods that store database driver should implement.
  9. type Driver interface {
  10. GetDB() *sql.DB
  11. Close() error
  12. Migrate(ctx context.Context) error
  13. Vacuum(ctx context.Context) error
  14. BackupTo(ctx context.Context, filename string) error
  15. // Activity model related methods.
  16. CreateActivity(ctx context.Context, create *Activity) (*Activity, error)
  17. // Resource model related methods.
  18. CreateResource(ctx context.Context, create *Resource) (*Resource, error)
  19. ListResources(ctx context.Context, find *FindResource) ([]*Resource, error)
  20. UpdateResource(ctx context.Context, update *UpdateResource) (*Resource, error)
  21. DeleteResource(ctx context.Context, delete *DeleteResource) error
  22. // Memo model related methods.
  23. CreateMemo(ctx context.Context, create *Memo) (*Memo, error)
  24. ListMemos(ctx context.Context, find *FindMemo) ([]*Memo, error)
  25. UpdateMemo(ctx context.Context, update *UpdateMemo) error
  26. DeleteMemo(ctx context.Context, delete *DeleteMemo) error
  27. FindMemosVisibilityList(ctx context.Context, memoIDs []int32) ([]Visibility, error)
  28. // MemoRelation model related methods.
  29. UpsertMemoRelation(ctx context.Context, create *MemoRelation) (*MemoRelation, error)
  30. ListMemoRelations(ctx context.Context, find *FindMemoRelation) ([]*MemoRelation, error)
  31. DeleteMemoRelation(ctx context.Context, delete *DeleteMemoRelation) error
  32. // MemoOrganizer model related methods.
  33. UpsertMemoOrganizer(ctx context.Context, upsert *MemoOrganizer) (*MemoOrganizer, error)
  34. GetMemoOrganizer(ctx context.Context, find *FindMemoOrganizer) (*MemoOrganizer, error)
  35. DeleteMemoOrganizer(ctx context.Context, delete *DeleteMemoOrganizer) error
  36. // SystemSetting model related methods.
  37. UpsertSystemSetting(ctx context.Context, upsert *SystemSetting) (*SystemSetting, error)
  38. ListSystemSettings(ctx context.Context, find *FindSystemSetting) ([]*SystemSetting, error)
  39. // User model related methods.
  40. CreateUser(ctx context.Context, create *User) (*User, error)
  41. UpdateUser(ctx context.Context, update *UpdateUser) (*User, error)
  42. ListUsers(ctx context.Context, find *FindUser) ([]*User, error)
  43. DeleteUser(ctx context.Context, delete *DeleteUser) error
  44. // UserSetting model related methods.
  45. UpsertUserSetting(ctx context.Context, upsert *UserSetting) (*UserSetting, error)
  46. ListUserSettings(ctx context.Context, find *FindUserSetting) ([]*UserSetting, error)
  47. UpsertUserSettingV1(ctx context.Context, upsert *storepb.UserSetting) (*storepb.UserSetting, error)
  48. ListUserSettingsV1(ctx context.Context, find *FindUserSettingV1) ([]*storepb.UserSetting, error)
  49. // IdentityProvider model related methods.
  50. CreateIdentityProvider(ctx context.Context, create *IdentityProvider) (*IdentityProvider, error)
  51. ListIdentityProviders(ctx context.Context, find *FindIdentityProvider) ([]*IdentityProvider, error)
  52. GetIdentityProvider(ctx context.Context, find *FindIdentityProvider) (*IdentityProvider, error)
  53. UpdateIdentityProvider(ctx context.Context, update *UpdateIdentityProvider) (*IdentityProvider, error)
  54. DeleteIdentityProvider(ctx context.Context, delete *DeleteIdentityProvider) error
  55. // Tag model related methods.
  56. UpsertTag(ctx context.Context, upsert *Tag) (*Tag, error)
  57. ListTags(ctx context.Context, find *FindTag) ([]*Tag, error)
  58. DeleteTag(ctx context.Context, delete *DeleteTag) error
  59. // Storage model related methods.
  60. CreateStorage(ctx context.Context, create *Storage) (*Storage, error)
  61. ListStorages(ctx context.Context, find *FindStorage) ([]*Storage, error)
  62. GetStorage(ctx context.Context, find *FindStorage) (*Storage, error)
  63. UpdateStorage(ctx context.Context, update *UpdateStorage) (*Storage, error)
  64. DeleteStorage(ctx context.Context, delete *DeleteStorage) error
  65. }