sync: Extract function that import flags from importer

This commit is contained in:
nemunaire 2019-07-05 22:28:56 +02:00
commit 4039a394b5
8 changed files with 438 additions and 294 deletions

View file

@ -3,9 +3,11 @@ package fic
import ()
type Flag interface {
GetId() int64
Create(e Exercice) (Flag, error)
Update() (int64, error)
Delete() (int64, error)
AddDepend(d Flag) (error)
AddDepend(d Flag) error
GetDepends() ([]Flag, error)
Check(val interface{}) int
FoundBy(t Team)
@ -34,6 +36,11 @@ func (e Exercice) GetFlags() ([]Flag, error) {
return flags, nil
}
// AddFlag add the given flag and eventually its entries (from MCQ).
func (e Exercice) AddFlag(flag Flag) (f Flag, err error) {
return flag.Create(e)
}
// WipeFlags deletes flags coming with the challenge.
func (e Exercice) WipeFlags() (int64, error) {
if _, err := DBExec("DELETE FROM exercice_files_deps WHERE id_flag IN (SELECT id_flag FROM exercice_flags WHERE id_exercice = ?)", e.Id); err != nil {