-
Notifications
You must be signed in to change notification settings - Fork 0
/
globvar.go
73 lines (53 loc) · 1.85 KB
/
globvar.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
package control
import (
"context"
"github.com/claion-org/claiflow/pkg/server/database/vanilla/excute"
"github.com/claion-org/claiflow/pkg/server/database/vanilla/stmt"
"github.com/claion-org/claiflow/pkg/server/macro/generic"
"github.com/claion-org/claiflow/pkg/server/model"
)
func FindGlobalVariables(ctx context.Context, query stmt.ConditionStmt, order stmt.OrderStmt) ([]model.GlobalVariable, error) {
out := make([]model.GlobalVariable, 0, INIT_SLICE_CAP)
var globvar model.GlobalVariable
err := Driver().QueryRows(globvar.TableName(), globvar.ColumnNames(), query, order, nil)(
ctx, Database())(
func(scanner excute.Scanner) error {
if err := globvar.Scan(scanner); err != nil {
return err
}
out = generic.Append(out, globvar)
return nil
})
return out, err
}
func GetGlobalVariable(ctx context.Context, uuid string) (*model.GlobalVariable, error) {
var globvar model.GlobalVariable
globvar.UUID = uuid
cond := stmt.And(
stmt.Equal(model.GlobalVariableFieldsUuid.String(), globvar.UUID),
)
err := Driver().QueryRow(globvar.TableName(), globvar.ColumnNames(), cond)(
ctx, Database())(
func(scanner excute.Scanner) error {
return globvar.Scan(scanner)
})
return &globvar, err
}
func UpsertGlobalVariable(ctx context.Context, globvar *model.GlobalVariable, updateColumns []string) error {
_, lastID, err := Driver().Upsert(globvar.TableName(), globvar.ColumnNames(), updateColumns, globvar.ColumnValues())(
ctx, Database())
globvar.ID = lastID
return err
}
// func DeleteGlobalVariable(ctx context.Context, key string) error {
// globvar, ok := defaultGlobalVariables()[key]
// if !ok {
// return fmt.Errorf("invalid global variable key")
// }
// cond := stmt.And(
// stmt.Equal("key", globvar.Key),
// )
// _, err := Driver().Delete(globvar.TableName(), cond)(
// ctx, Database())
// return err
// }