diff --git a/.drone.yml b/.drone.yml index 7c8acb42..132e7643 100644 --- a/.drone.yml +++ b/.drone.yml @@ -30,6 +30,9 @@ steps: commands: - apk --no-cache add build-base - go vet -v -buildvcs=false -tags gitgo srs.epita.fr/fic-server/admin + - go vet -v -buildvcs=false srs.epita.fr/fic-server/libfic + - go vet -v -buildvcs=false srs.epita.fr/fic-server/admin/sync + - go vet -v -buildvcs=false srs.epita.fr/fic-server/admin/pki - go vet -v -buildvcs=false srs.epita.fr/fic-server/admin - go vet -v -buildvcs=false srs.epita.fr/fic-server/backend - go vet -v -buildvcs=false srs.epita.fr/fic-server/evdist @@ -37,6 +40,7 @@ steps: - go vet -v -buildvcs=false srs.epita.fr/fic-server/dashboard - go vet -v -buildvcs=false srs.epita.fr/fic-server/repochecker - go vet -v -buildvcs=false srs.epita.fr/fic-server/qa + - go vet -v -buildvcs=false srs.epita.fr/fic-server/settings - name: build admin image: golang:alpine diff --git a/admin/api/certificate.go b/admin/api/certificate.go index 6ad3ac37..5c98c116 100644 --- a/admin/api/certificate.go +++ b/admin/api/certificate.go @@ -333,7 +333,7 @@ func getTeamP12File(c *gin.Context) { return } else if fd, err := os.Open(pki.ClientP12Path(cert.Id)); err != nil { log.Println("Unable to open ClientP12Path:", err.Error()) - c.AbortWithError(http.StatusInternalServerError, fmt.Errorf("Unable to open the p12: %w", err.Error())) + c.AbortWithError(http.StatusInternalServerError, fmt.Errorf("Unable to open the p12: %w", err)) return } else { defer fd.Close() @@ -341,7 +341,7 @@ func getTeamP12File(c *gin.Context) { data, err := ioutil.ReadAll(fd) if err != nil { log.Println("Unable to open ClientP12Path:", err.Error()) - c.AbortWithError(http.StatusInternalServerError, fmt.Errorf("Unable to open the p12: %w", err.Error())) + c.AbortWithError(http.StatusInternalServerError, fmt.Errorf("Unable to open the p12: %w", err)) return } diff --git a/admin/api/qa.go b/admin/api/qa.go index 26c4cf63..6b448ebf 100644 --- a/admin/api/qa.go +++ b/admin/api/qa.go @@ -70,7 +70,7 @@ func importExerciceQA(c *gin.Context) { } else { qa.Creation = uq.Creation qa.Solved = uq.Solved - qa.Closed = qa.Closed + qa.Closed = uq.Closed _, err = qa.Update() if err != nil { diff --git a/admin/api/team.go b/admin/api/team.go index c598a160..9bcf208c 100644 --- a/admin/api/team.go +++ b/admin/api/team.go @@ -390,7 +390,7 @@ func deleteTeam(c *gin.Context) { assocs, err := pki.GetTeamAssociations(TeamsDir, team.Id) if err != nil { - log.Printf("Unable to GetTeamAssociations(tid=%s): %s", team.Id, err.Error()) + log.Printf("Unable to GetTeamAssociations(tid=%d): %s", team.Id, err.Error()) c.AbortWithStatusJSON(http.StatusInternalServerError, gin.H{"errmsg": "An error occurs when trying to retrieve team association."}) return } diff --git a/admin/sync/exercice_keys.go b/admin/sync/exercice_keys.go index 0d913ea9..3be457d8 100644 --- a/admin/sync/exercice_keys.go +++ b/admin/sync/exercice_keys.go @@ -54,7 +54,7 @@ func getRawKey(input interface{}, validatorRe string, ordered bool, showLines bo for i, v := range f { if g, ok := v.(string); ok { if strings.Index(g, separator) != -1 { - errs = append(errs, fmt.Errorf("flag items cannot contain %q character as it is used as separator. Change the separator attribute for this flag.")) + errs = append(errs, fmt.Errorf("flag items cannot contain %q character as it is used as separator. Change the separator attribute for this flag.", separator)) return } else { fitems = append(fitems, g) @@ -308,7 +308,7 @@ func buildExerciceFlag(i Importer, exercice *fic.Exercice, flag ExerciceFlag, nl if flag.Type == "label" { addedFlag, berrs := buildLabelFlag(exercice, flag, nline+1) for _, e := range berrs { - errs = append(errs, fmt.Errorf("%q: flag #%d: %w", path.Base(exercice.Path), nline+1), e) + errs = append(errs, fmt.Errorf("%q: flag #%d: %w", path.Base(exercice.Path), nline+1, e)) } if addedFlag != nil { ret = append(ret, importFlag{ @@ -319,7 +319,7 @@ func buildExerciceFlag(i Importer, exercice *fic.Exercice, flag ExerciceFlag, nl } else if flag.Type == "key" || strings.HasPrefix(flag.Type, "number") || flag.Type == "text" || flag.Type == "ucq" || flag.Type == "radio" || flag.Type == "vector" { addedFlag, choices, berrs := buildKeyFlag(exercice, flag, nline+1, "Flag") for _, e := range berrs { - errs = append(errs, fmt.Errorf("%q: flag #%d: %w", path.Base(exercice.Path), nline+1), e) + errs = append(errs, fmt.Errorf("%q: flag #%d: %w", path.Base(exercice.Path), nline+1, e)) } if addedFlag != nil { ret = append(ret, importFlag{ diff --git a/admin/sync/exercices.go b/admin/sync/exercices.go index 21dcfb88..b60270e5 100644 --- a/admin/sync/exercices.go +++ b/admin/sync/exercices.go @@ -261,7 +261,7 @@ func BuildExercice(i Importer, theme *fic.Theme, epath string, dmap *map[int64]* if !resolutionFound { if LogMissingResolution { - log.Printf("%q: no resolution video or text file found in %s", edir, epath, epath) + log.Printf("%q: no resolution video or text file found in %s", edir, epath) } else { errs = append(errs, fmt.Errorf("no resolution video or text file found in %s", epath)) } diff --git a/admin/sync/themes.go b/admin/sync/themes.go index c9a4af1d..cb811999 100644 --- a/admin/sync/themes.go +++ b/admin/sync/themes.go @@ -65,7 +65,7 @@ func resizePicture(importedPath string, rect image.Rectangle) error { } defer dstFile.Close() - if err = jpeg.Encode(dstFile, dst, &jpeg.Options{100}); err != nil { + if err = jpeg.Encode(dstFile, dst, &jpeg.Options{Quality: 100}); err != nil { return err } } else { @@ -75,7 +75,7 @@ func resizePicture(importedPath string, rect image.Rectangle) error { } defer dstFile.Close() - if err = jpeg.Encode(dstFile, src, &jpeg.Options{100}); err != nil { + if err = jpeg.Encode(dstFile, src, &jpeg.Options{Quality: 100}); err != nil { return err } } @@ -190,7 +190,7 @@ func BuildTheme(i Importer, tdir string) (th *fic.Theme, errs []error) { // SyncThemes imports new or updates existing themes. func SyncThemes(i Importer) (errs []error) { if themes, err := GetThemes(i); err != nil { - errs = append(errs, fmt.Errorf("Unable to list themes: %w", err.Error())) + errs = append(errs, fmt.Errorf("Unable to list themes: %w", err)) } else { rand.Shuffle(len(themes), func(i, j int) { themes[i], themes[j] = themes[j], themes[i] diff --git a/libfic/team_my.go b/libfic/team_my.go index 66beea58..b16fc4f1 100644 --- a/libfic/team_my.go +++ b/libfic/team_my.go @@ -34,7 +34,6 @@ type myTeamHint struct { } type myTeamFlag struct { Id int `json:"id,omitempty"` - order int8 `json:"order"` Label string `json:"label"` Type string `json:"type,omitempty"` Placeholder string `json:"placeholder,omitempty"` @@ -57,6 +56,7 @@ type myTeamFlag struct { Min *float64 `json:"min,omitempty"` Max *float64 `json:"max,omitempty"` Step *float64 `json:"step,omitempty"` + order int8 } type myTeamMCQJustifiedChoice struct { Label string `json:"label"`