-
Notifications
You must be signed in to change notification settings - Fork 3
/
generator_args.go
101 lines (80 loc) · 2.66 KB
/
generator_args.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package postgresql
import (
"database/sql"
"github.com/colonyos/colonies/pkg/core"
)
func (db *PQDatabase) AddGeneratorArg(generatorArg *core.GeneratorArg) error {
sqlStatement := `INSERT INTO ` + db.dbPrefix + `GENERATORARGS (GENERATORARG_ID, GENERATOR_ID, COLONY_NAME, ARG) VALUES ($1, $2, $3, $4)`
_, err := db.postgresql.Exec(sqlStatement, generatorArg.ID, generatorArg.GeneratorID, generatorArg.ColonyName, generatorArg.Arg)
if err != nil {
return err
}
return nil
}
func (db *PQDatabase) parseGeneratorArgs(rows *sql.Rows) ([]*core.GeneratorArg, error) {
var generatorArgs []*core.GeneratorArg
for rows.Next() {
var generatorArgID string
var generatorID string
var colonyName string
var arg string
if err := rows.Scan(&generatorArgID, &generatorID, &colonyName, &arg); err != nil {
return nil, err
}
generatorArg := &core.GeneratorArg{ID: generatorArgID, GeneratorID: generatorID, ColonyName: colonyName, Arg: arg}
generatorArgs = append(generatorArgs, generatorArg)
}
return generatorArgs, nil
}
func (db *PQDatabase) GetGeneratorArgs(generatorID string, count int) ([]*core.GeneratorArg, error) {
sqlStatement := `SELECT * FROM ` + db.dbPrefix + `GENERATORARGS WHERE GENERATOR_ID=$1 LIMIT $2`
rows, err := db.postgresql.Query(sqlStatement, generatorID, count)
if err != nil {
return nil, err
}
defer rows.Close()
generatorArgs, err := db.parseGeneratorArgs(rows)
if err != nil {
return nil, err
}
return generatorArgs, nil
}
func (db *PQDatabase) CountGeneratorArgs(generatorID string) (int, error) {
sqlStatement := `SELECT COUNT(*) FROM ` + db.dbPrefix + `GENERATORARGS WHERE GENERATOR_ID=$1`
rows, err := db.postgresql.Query(sqlStatement, generatorID)
if err != nil {
return -1, err
}
defer rows.Close()
rows.Next()
var count int
err = rows.Scan(&count)
if err != nil {
return -1, err
}
return count, nil
}
func (db *PQDatabase) RemoveGeneratorArgByID(generatorArgsID string) error {
sqlStatement := `DELETE FROM ` + db.dbPrefix + `GENERATORARGS WHERE GENERATORARG_ID=$1`
_, err := db.postgresql.Exec(sqlStatement, generatorArgsID)
if err != nil {
return err
}
return nil
}
func (db *PQDatabase) RemoveAllGeneratorArgsByGeneratorID(generatorID string) error {
sqlStatement := `DELETE FROM ` + db.dbPrefix + `GENERATORARGS WHERE GENERATOR_ID=$1`
_, err := db.postgresql.Exec(sqlStatement, generatorID)
if err != nil {
return err
}
return nil
}
func (db *PQDatabase) RemoveAllGeneratorArgsByColonyName(colonyName string) error {
sqlStatement := `DELETE FROM ` + db.dbPrefix + `GENERATORARGS WHERE COLONY_NAME=$1`
_, err := db.postgresql.Exec(sqlStatement, colonyName)
if err != nil {
return err
}
return nil
}