-
Notifications
You must be signed in to change notification settings - Fork 43
/
callback.go
74 lines (65 loc) · 2.29 KB
/
callback.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
package database
import (
"database/sql"
"github.com/baetyl/baetyl-cloud/models"
"github.com/baetyl/baetyl-cloud/plugin/database/entities"
"github.com/jmoiron/sqlx"
)
func (d *dbStorage) GetCallback(name, namespace string) (*models.Callback, error) {
return d.GetCallbackTx(nil, name, namespace)
}
func (d *dbStorage) CreateCallback(callback *models.Callback) (sql.Result, error) {
return d.CreateCallbackTx(nil, callback)
}
func (d *dbStorage) UpdateCallback(callback *models.Callback) (sql.Result, error) {
return d.UpdateCallbackTx(nil, callback)
}
func (d *dbStorage) DeleteCallback(name, ns string) (sql.Result, error) {
return d.DeleteCallbackTx(nil, name, ns)
}
func (d *dbStorage) GetCallbackTx(tx *sqlx.Tx, name, namespace string) (*models.Callback, error) {
selectSQL := `
SELECT name, namespace, method, params,
header, body, url, description, create_time,
update_time
FROM baetyl_callback
WHERE namespace=? and name=? LIMIT 0,1
`
var callback []entities.Callback
if err := d.query(tx, selectSQL, &callback, namespace, name); err != nil {
return nil, err
}
if len(callback) > 0 {
return entities.ToCallbackModel(&callback[0]), nil
}
return nil, nil
}
func (d *dbStorage) CreateCallbackTx(tx *sqlx.Tx, callback *models.Callback) (sql.Result, error) {
insertSQL := `
INSERT INTO baetyl_callback (
name, namespace, method, params,
header, body, url, description)
VALUES (?,?,?,?,?,?,?,?)
`
callbackDB := entities.FromCallbackModel(callback)
return d.exec(tx, insertSQL, callbackDB.Name,
callbackDB.Namespace, callbackDB.Method, callbackDB.Params,
callbackDB.Header, callbackDB.Body, callbackDB.Url, callbackDB.Description)
}
func (d *dbStorage) UpdateCallbackTx(tx *sqlx.Tx, callback *models.Callback) (sql.Result, error) {
updateSQL := `
UPDATE baetyl_callback SET method=?,params=?,
header=?,body=?,url=?,description=?
WHERE namespace=? AND name=?
`
callbackDB := entities.FromCallbackModel(callback)
return d.exec(tx, updateSQL, callbackDB.Method, callbackDB.Params,
callbackDB.Header, callbackDB.Body, callbackDB.Url, callbackDB.Description,
callbackDB.Namespace, callbackDB.Name)
}
func (d *dbStorage) DeleteCallbackTx(tx *sqlx.Tx, name, ns string) (sql.Result, error) {
deleteSQL := `
DELETE FROM baetyl_callback where namespace=? AND name=?
`
return d.exec(tx, deleteSQL, ns, name)
}