fic: Add theme recursive deletion

This commit is contained in:
nemunaire 2021-11-13 01:39:58 +01:00
commit 1a1343596a
2 changed files with 63 additions and 2 deletions

View file

@ -268,8 +268,8 @@ func (e Exercice) DeleteCascade() (int64, error) {
}
}
// DeleteDeep the challenge from the database, including player content.
func (e Exercice) DeleteDeep() (int64, error) {
// DeleteCascadePlayer delete player content related to this challenge.
func (e Exercice) DeleteCascadePlayer() (int64, error) {
if _, err := DBExec("DELETE FROM mcq_found WHERE id_mcq IN (SELECT id_mcq FROM exercice_mcq WHERE id_exercice = ?)", e.Id); err != nil {
return 0, err
} else if _, err := DBExec("DELETE FROM flag_found WHERE id_flag IN (SELECT id_flag FROM exercice_flags WHERE id_exercice = ?)", e.Id); err != nil {
@ -282,6 +282,15 @@ func (e Exercice) DeleteDeep() (int64, error) {
return 0, err
} else if _, err := DBExec("DELETE FROM exercice_tries WHERE id_exercice = ?", e.Id); err != nil {
return 0, err
} else {
return 1, nil
}
}
// DeleteDeep the challenge from the database, including player content.
func (e Exercice) DeleteDeep() (int64, error) {
if _, err := e.DeleteCascadePlayer(); err != nil {
return 0, err
} else {
return e.DeleteCascade()
}