From 67f129ce4ce68a1799fd41e1f95ce75765d4501e Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 7 Nov 2022 02:00:22 +0100 Subject: [PATCH] qa: Auto-solve OK requests --- admin/api/qa.go | 2 +- libfic/qa.go | 6 +++--- qa/api/qa.go | 5 ++++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/admin/api/qa.go b/admin/api/qa.go index 6b448ebf..7a563856 100644 --- a/admin/api/qa.go +++ b/admin/api/qa.go @@ -63,7 +63,7 @@ func importExerciceQA(c *gin.Context) { return } - if qa, err := exercice.NewQAQuery(uq.Subject, uq.IdTeam, uq.User, uq.State); err != nil { + if qa, err := exercice.NewQAQuery(uq.Subject, uq.IdTeam, uq.User, uq.State, nil); err != nil { log.Println("Unable to importExerciceQA:", err.Error()) c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": "An error occurs during query creation."}) return diff --git a/libfic/qa.go b/libfic/qa.go index da618577..45087f7d 100644 --- a/libfic/qa.go +++ b/libfic/qa.go @@ -93,13 +93,13 @@ func (e *Exercice) GetQAQuery(id int64) (q *QAQuery, err error) { } // NewQAQuery creates and fills a new struct QAQuery and registers it into the database. -func (e *Exercice) NewQAQuery(subject string, teamId *int64, user string, state string) (*QAQuery, error) { - if res, err := DBExec("INSERT INTO exercices_qa (id_exercice, id_team, authuser, creation, state, subject) VALUES (?, ?, ?, ?, ?, ?)", e.Id, teamId, user, time.Now(), state, subject); err != nil { +func (e *Exercice) NewQAQuery(subject string, teamId *int64, user string, state string, solved *time.Time) (*QAQuery, error) { + if res, err := DBExec("INSERT INTO exercices_qa (id_exercice, id_team, authuser, creation, state, subject, solved) VALUES (?, ?, ?, ?, ?, ?, ?)", e.Id, teamId, user, time.Now(), state, subject, solved); err != nil { return nil, err } else if qid, err := res.LastInsertId(); err != nil { return nil, err } else { - return &QAQuery{qid, e.Id, teamId, user, time.Now(), state, subject, nil, nil}, nil + return &QAQuery{qid, e.Id, teamId, user, time.Now(), state, subject, solved, nil}, nil } } diff --git a/qa/api/qa.go b/qa/api/qa.go index f3ac4f24..54541f4a 100644 --- a/qa/api/qa.go +++ b/qa/api/qa.go @@ -5,6 +5,7 @@ import ( "log" "net/http" "strconv" + "time" "srs.epita.fr/fic-server/libfic" @@ -105,7 +106,9 @@ func createExerciceQA(c *gin.Context) { if len(uq.Subject) == 0 { if uq.State == "ok" { + tmp := time.Now() uq.Subject = "RAS" + uq.Solved = &tmp } else { c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"errmsg": "Subject not filled"}) return @@ -113,7 +116,7 @@ func createExerciceQA(c *gin.Context) { } exercice := c.MustGet("exercice").(*fic.Exercice) - qa, err := exercice.NewQAQuery(uq.Subject, &teamid, ficteam, uq.State) + qa, err := exercice.NewQAQuery(uq.Subject, &teamid, ficteam, uq.State, uq.Solved) if err != nil { log.Println("Unable to NewQAQuery: ", err.Error()) c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"errmsg": "Unable to create the new QA query. Please retry."})