driver.go 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. // current file is driver
  15. GetCurrentDBSize(ctx context.Context) (int64, error)
  16. // MigrationHistory model related methods.
  17. FindMigrationHistoryList(ctx context.Context, find *FindMigrationHistory) ([]*MigrationHistory, error)
  18. UpsertMigrationHistory(ctx context.Context, upsert *UpsertMigrationHistory) (*MigrationHistory, error)
  19. // Activity model related methods.
  20. CreateActivity(ctx context.Context, create *Activity) (*Activity, error)
  21. ListActivities(ctx context.Context, find *FindActivity) ([]*Activity, error)
  22. // Resource model related methods.
  23. CreateResource(ctx context.Context, create *Resource) (*Resource, error)
  24. ListResources(ctx context.Context, find *FindResource) ([]*Resource, error)
  25. UpdateResource(ctx context.Context, update *UpdateResource) (*Resource, error)
  26. DeleteResource(ctx context.Context, delete *DeleteResource) error
  27. // Memo model related methods.
  28. CreateMemo(ctx context.Context, create *Memo) (*Memo, error)
  29. ListMemos(ctx context.Context, find *FindMemo) ([]*Memo, error)
  30. UpdateMemo(ctx context.Context, update *UpdateMemo) error
  31. DeleteMemo(ctx context.Context, delete *DeleteMemo) error
  32. // MemoRelation model related methods.
  33. UpsertMemoRelation(ctx context.Context, create *MemoRelation) (*MemoRelation, error)
  34. ListMemoRelations(ctx context.Context, find *FindMemoRelation) ([]*MemoRelation, error)
  35. DeleteMemoRelation(ctx context.Context, delete *DeleteMemoRelation) error
  36. // MemoOrganizer model related methods.
  37. UpsertMemoOrganizer(ctx context.Context, upsert *MemoOrganizer) (*MemoOrganizer, error)
  38. ListMemoOrganizer(ctx context.Context, find *FindMemoOrganizer) ([]*MemoOrganizer, error)
  39. DeleteMemoOrganizer(ctx context.Context, delete *DeleteMemoOrganizer) error
  40. // WorkspaceSetting model related methods.
  41. UpsertWorkspaceSetting(ctx context.Context, upsert *WorkspaceSetting) (*WorkspaceSetting, error)
  42. ListWorkspaceSettings(ctx context.Context, find *FindWorkspaceSetting) ([]*WorkspaceSetting, error)
  43. // User model related methods.
  44. CreateUser(ctx context.Context, create *User) (*User, error)
  45. UpdateUser(ctx context.Context, update *UpdateUser) (*User, error)
  46. ListUsers(ctx context.Context, find *FindUser) ([]*User, error)
  47. DeleteUser(ctx context.Context, delete *DeleteUser) error
  48. // UserSetting model related methods.
  49. UpsertUserSetting(ctx context.Context, upsert *storepb.UserSetting) (*storepb.UserSetting, error)
  50. ListUserSettings(ctx context.Context, find *FindUserSetting) ([]*storepb.UserSetting, error)
  51. // IdentityProvider model related methods.
  52. CreateIdentityProvider(ctx context.Context, create *IdentityProvider) (*IdentityProvider, error)
  53. ListIdentityProviders(ctx context.Context, find *FindIdentityProvider) ([]*IdentityProvider, error)
  54. UpdateIdentityProvider(ctx context.Context, update *UpdateIdentityProvider) (*IdentityProvider, error)
  55. DeleteIdentityProvider(ctx context.Context, delete *DeleteIdentityProvider) error
  56. // Tag model related methods.
  57. UpsertTag(ctx context.Context, upsert *Tag) (*Tag, error)
  58. ListTags(ctx context.Context, find *FindTag) ([]*Tag, error)
  59. DeleteTag(ctx context.Context, delete *DeleteTag) error
  60. // Storage model related methods.
  61. CreateStorage(ctx context.Context, create *Storage) (*Storage, error)
  62. ListStorages(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. // Inbox model related methods.
  66. CreateInbox(ctx context.Context, create *Inbox) (*Inbox, error)
  67. ListInboxes(ctx context.Context, find *FindInbox) ([]*Inbox, error)
  68. UpdateInbox(ctx context.Context, update *UpdateInbox) (*Inbox, error)
  69. DeleteInbox(ctx context.Context, delete *DeleteInbox) error
  70. // Webhook model related methods.
  71. CreateWebhook(ctx context.Context, create *storepb.Webhook) (*storepb.Webhook, error)
  72. ListWebhooks(ctx context.Context, find *FindWebhook) ([]*storepb.Webhook, error)
  73. UpdateWebhook(ctx context.Context, update *UpdateWebhook) (*storepb.Webhook, error)
  74. DeleteWebhook(ctx context.Context, delete *DeleteWebhook) error
  75. }