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  }