Be able to list users submisions

- Closes: #45
This commit is contained in:
Las Zenow 2019-03-05 19:54:21 +00:00
parent 4903f722b5
commit 60379ba1ef
10 changed files with 143 additions and 9 deletions

View file

@ -1,16 +1,26 @@
package database
// TODO: clean up old submissions
type Submission struct {
ID int `sql:"type:serial"`
SubmissionID string `sql:"type:varchar(16)"`
Filename string
Status string
Comment string
UserID int `sql:"type:integer,unique"`
User *User
BookID string `sql:"type:varchar(16),unique"`
Book *Book
}
func (db *pgDB) AddSubmission(submission Submission) (id int, err error) {
func (db *pgDB) AddSubmission(submission Submission, userName string) (id int, err error) {
if userName != "" {
user, err := db.getUser(userName)
if err == nil {
submission.UserID = user.ID
}
}
err = db.sql.Insert(&submission)
return submission.ID, err
}
@ -61,6 +71,15 @@ func (db *pgDB) GetSubmission(submissionID string) (submission []Submission, err
return
}
func (db *pgDB) GetUserSubmissions(userName string) (submission []Submission, err error) {
err = db.sql.Model(&submission).
Column("Book", "User").
Where("username = ?", userName).
Order("id DESC").
Select()
return
}
func extractID(book *Book) interface{} {
if book == nil {
return nil