github.com/code-to-go/safepool.lib@v0.0.0-20221205180519-ee25e63c226e/api/db.go (about) 1 package api 2 3 import ( 4 "github.com/code-to-go/safepool.lib/sql" 5 6 "github.com/sirupsen/logrus" 7 ) 8 9 func sqlGetConfig(pool string, key string) (s string, i int, b []byte, ok bool) { 10 var b64 string 11 err := sql.QueryRow("GET_CONFIG", sql.Args{"pool": pool, "key": key}, &s, &i, &b64) 12 switch err { 13 case sql.ErrNoRows: 14 ok = false 15 case nil: 16 ok = true 17 if b64 != "" { 18 b = sql.DecodeBase64(b64) 19 } 20 default: 21 logrus.Errorf("cannot get config '%s': %v", key, err) 22 ok = false 23 } 24 return s, i, b, ok 25 } 26 27 func sqlSetConfig(pool string, key string, s string, i int, b []byte) error { 28 b64 := sql.EncodeBase64(b) 29 _, err := sql.Exec("SET_CONFIG", sql.Args{"pool": pool, "key": key, "s": s, "i": i, "b": b64}) 30 if err != nil { 31 logrus.Errorf("cannot exec 'SET_CONFIG': %v", err) 32 } 33 return err 34 }