shiori/database/database.go

44 lines
1.3 KiB
Go
Raw Normal View History

package database
import (
2018-01-29 16:00:37 +08:00
"database/sql"
2018-03-03 17:50:54 +08:00
"github.com/RadhiFadlillah/shiori/model"
)
2018-02-03 21:20:10 +08:00
// Database is interface for manipulating data in database.
type Database interface {
2018-02-03 21:20:10 +08:00
// SaveBookmark saves new bookmark to database.
2018-02-20 17:48:02 +08:00
CreateBookmark(bookmark model.Bookmark) (int64, error)
2018-02-03 21:20:10 +08:00
// GetBookmarks fetch list of bookmarks based on submitted indices.
2018-02-22 21:45:43 +08:00
GetBookmarks(withContent bool, indices ...string) ([]model.Bookmark, error)
2018-02-03 21:20:10 +08:00
2018-03-06 16:06:20 +08:00
//GetTags fetch list of tags and their frequency
GetTags() ([]model.Tag, error)
2018-02-03 21:20:10 +08:00
// DeleteBookmarks removes all record with matching indices from database.
2018-03-05 12:02:36 +08:00
DeleteBookmarks(indices ...string) error
2018-02-03 21:20:10 +08:00
// SearchBookmarks search bookmarks by the keyword or tags.
SearchBookmarks(orderLatest bool, keyword string, tags ...string) ([]model.Bookmark, error)
2018-02-03 21:20:10 +08:00
// UpdateBookmarks updates the saved bookmark in database.
2018-02-26 18:00:14 +08:00
UpdateBookmarks(bookmarks []model.Bookmark) ([]model.Bookmark, error)
2018-02-20 17:48:02 +08:00
// CreateAccount creates new account in database
CreateAccount(username, password string) error
// GetAccounts fetch list of accounts in database
2018-02-22 17:48:36 +08:00
GetAccounts(keyword string, exact bool) ([]model.Account, error)
2018-02-20 17:48:02 +08:00
// DeleteAccounts removes all record with matching usernames
DeleteAccounts(usernames ...string) error
}
func checkError(err error) {
2018-01-29 16:00:37 +08:00
if err != nil && err != sql.ErrNoRows {
panic(err)
}
}