Add submission page for uploads

* Closes: #13
This commit is contained in:
Las Zenow 2017-09-21 12:09:04 +00:00
parent 26894f1438
commit cc12981a50
12 changed files with 216 additions and 13 deletions

View file

@ -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 (

View file

@ -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)
}

View 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
}