Keep count of downladed/viewed books
This commit is contained in:
parent
68ffe6cf5b
commit
71d975c2f7
7 changed files with 109 additions and 91 deletions
|
@ -1,4 +1,3 @@
|
|||
// TODO
|
||||
package database
|
||||
|
||||
import (
|
||||
|
@ -7,20 +6,60 @@ import (
|
|||
log "github.com/cihub/seelog"
|
||||
)
|
||||
|
||||
func (db *pgDB) AddStats(stats interface{}) error {
|
||||
return nil
|
||||
type Visit struct {
|
||||
ID int
|
||||
Downloads int `sql:",notnull"`
|
||||
Views int `sql:",notnull"`
|
||||
BookID string
|
||||
Book *Book
|
||||
}
|
||||
|
||||
/* Get the most visited books
|
||||
*/
|
||||
func (db *pgDB) GetVisitedBooks() (books []Book, err error) {
|
||||
return []Book{}, nil
|
||||
func (db *pgDB) IncViews(ID string) error {
|
||||
visit := &Visit{
|
||||
Downloads: 0,
|
||||
Views: 1,
|
||||
BookID: ID,
|
||||
}
|
||||
_, err := db.sql.Model(visit).
|
||||
OnConflict("(book_id) DO UPDATE").
|
||||
Set("views = Visit.views + 1").
|
||||
Insert()
|
||||
return err
|
||||
}
|
||||
|
||||
/* Get the most downloaded books
|
||||
func (db *pgDB) IncDownloads(ID string) error {
|
||||
visit := &Visit{
|
||||
Downloads: 1,
|
||||
Views: 0,
|
||||
BookID: ID,
|
||||
}
|
||||
_, err := db.sql.Model(visit).
|
||||
OnConflict("(book_id) DO UPDATE").
|
||||
Set("downloads = Visit.downloads + 1").
|
||||
Insert()
|
||||
return err
|
||||
}
|
||||
|
||||
/* GetVisitedBooks get the most visited books
|
||||
*/
|
||||
func (db *pgDB) GetDownloadedBooks() (books []Book, err error) {
|
||||
return []Book{}, nil
|
||||
func (db *pgDB) GetVisitedBooks(num int) (books []Book, err error) {
|
||||
err = db.sql.Model(&books).
|
||||
Column("Visit").
|
||||
Order("views DESC NULLS LAST").
|
||||
Limit(num).
|
||||
Select()
|
||||
return
|
||||
}
|
||||
|
||||
/* GetDownloadedBooks the most downloaded books
|
||||
*/
|
||||
func (db *pgDB) GetDownloadedBooks(num int) (books []Book, err error) {
|
||||
err = db.sql.Model(&books).
|
||||
Column("Visit").
|
||||
Order("downloads DESC NULLS LAST").
|
||||
Limit(num).
|
||||
Select()
|
||||
return
|
||||
}
|
||||
|
||||
func (db *pgDB) GetTags() ([]string, error) {
|
||||
|
|
Reference in a new issue