parent
26894f1438
commit
cc12981a50
12 changed files with 216 additions and 13 deletions
|
@ -27,6 +27,10 @@ type DB interface {
|
|||
IncViews(ID string) error
|
||||
IncDownloads(ID string) error
|
||||
GetFrontPage() FrontPage
|
||||
AddSubmission(submission Submission) (id int, err error)
|
||||
UpdateSubmission(id int, status string, book *Book) error
|
||||
UpdateSubmissionByBook(bookID string, status string, book *Book) error
|
||||
GetSubmission(submissionID string) (submission []Submission, err error)
|
||||
}
|
||||
|
||||
const (
|
||||
|
|
|
@ -88,3 +88,19 @@ func (db *roDB) IncDownloads(ID string) error {
|
|||
func (db *roDB) GetFrontPage() FrontPage {
|
||||
return db.db.GetFrontPage()
|
||||
}
|
||||
|
||||
func (db *roDB) AddSubmission(submission Submission) (id int, err error) {
|
||||
return 0, errors.New("RO database")
|
||||
}
|
||||
|
||||
func (db *roDB) UpdateSubmission(id int, status string, book *Book) error {
|
||||
return errors.New("RO database")
|
||||
}
|
||||
|
||||
func (db *roDB) UpdateSubmissionByBook(bookID string, status string, book *Book) error {
|
||||
return errors.New("RO database")
|
||||
}
|
||||
|
||||
func (db *roDB) GetSubmission(submissionID string) (submission []Submission, err error) {
|
||||
return db.db.GetSubmission(submissionID)
|
||||
}
|
||||
|
|
48
lib/database/submissions.go
Normal file
48
lib/database/submissions.go
Normal file
|
@ -0,0 +1,48 @@
|
|||
package database
|
||||
|
||||
type Submission struct {
|
||||
ID int
|
||||
SubmissionID string
|
||||
Filename string
|
||||
Status string
|
||||
BookID string
|
||||
Book *Book
|
||||
}
|
||||
|
||||
func (db *pgDB) AddSubmission(submission Submission) (id int, err error) {
|
||||
err = db.sql.Insert(&submission)
|
||||
return submission.ID, err
|
||||
}
|
||||
|
||||
func (db *pgDB) UpdateSubmission(id int, status string, book *Book) error {
|
||||
_, err := db.sql.Model(&Submission{}).
|
||||
Set("status = ?", status).
|
||||
Set("book_id = ?", extractID(book)).
|
||||
Where("id = ?", id).
|
||||
Update()
|
||||
return err
|
||||
}
|
||||
|
||||
func (db *pgDB) UpdateSubmissionByBook(bookID string, status string, book *Book) error {
|
||||
_, err := db.sql.Model(&Submission{}).
|
||||
Set("status = ?", status).
|
||||
Set("book_id = ?", extractID(book)).
|
||||
Where("book_id = ?", bookID).
|
||||
Update()
|
||||
return err
|
||||
}
|
||||
|
||||
func (db *pgDB) GetSubmission(submissionID string) (submission []Submission, err error) {
|
||||
err = db.sql.Model(&submission).
|
||||
Column("Book").
|
||||
Where("submission_id = ?", submissionID).
|
||||
Select()
|
||||
return
|
||||
}
|
||||
|
||||
func extractID(book *Book) interface{} {
|
||||
if book == nil {
|
||||
return nil
|
||||
}
|
||||
return book.ID
|
||||
}
|
Reference in a new issue