-
Notifications
You must be signed in to change notification settings - Fork 1
/
deleteTask.go
71 lines (58 loc) · 1.6 KB
/
deleteTask.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Copyright (c) 2016 OpenM++
// This code is licensed under the MIT license (see LICENSE.txt for details)
package db
import (
"database/sql"
"errors"
"strconv"
)
// DeleteTask delete modeling task and task run history from database.
func DeleteTask(dbConn *sql.DB, taskId int) error {
// validate parameters
if taskId <= 0 {
return errors.New("invalid task id: " + strconv.Itoa(taskId))
}
// delete inside of transaction scope
trx, err := dbConn.Begin()
if err != nil {
return err
}
if err := doDeleteTask(trx, taskId); err != nil {
trx.Rollback()
return err
}
trx.Commit()
return nil
}
// dbDeleteTask delete modeling task and task run history from database.
// It does update as part of transaction
func doDeleteTask(trx *sql.Tx, taskId int) error {
// update task master record to prevent task use
stId := strconv.Itoa(taskId)
err := TrxUpdate(trx, "UPDATE task_lst SET task_name = 'deleted' WHERE task_id = "+stId)
if err != nil {
return err
}
// delete modeling task and task run history
err = TrxUpdate(trx, "DELETE FROM task_run_set WHERE task_id = "+stId)
if err != nil {
return err
}
err = TrxUpdate(trx, "DELETE FROM task_run_lst WHERE task_id = "+stId)
if err != nil {
return err
}
err = TrxUpdate(trx, "DELETE FROM task_set WHERE task_id = "+stId)
if err != nil {
return err
}
err = TrxUpdate(trx, "DELETE FROM task_txt WHERE task_id = "+stId)
if err != nil {
return err
}
err = TrxUpdate(trx, "DELETE FROM task_lst WHERE task_id = "+stId)
if err != nil {
return err
}
return nil
}