mirror of
https://github.com/openziti/zrok.git
synced 2025-06-26 12:42:18 +02:00
store implementation for secrets (#968)
This commit is contained in:
parent
6c0004a490
commit
65da4561f8
47
controller/store/secret.go
Normal file
47
controller/store/secret.go
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
package store
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/jmoiron/sqlx"
|
||||||
|
"github.com/pkg/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Secrets struct {
|
||||||
|
Model
|
||||||
|
ShareId int
|
||||||
|
Secrets []Secret
|
||||||
|
}
|
||||||
|
|
||||||
|
type Secret struct {
|
||||||
|
Key string
|
||||||
|
Value string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (str *Store) CreateSecrets(secrets Secrets, trx *sqlx.Tx) error {
|
||||||
|
for _, secret := range secrets.Secrets {
|
||||||
|
stmt, err := trx.Prepare("insert into secrets (share_id, key, value) values ($1, $2, $3)")
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrap(err, "error preparing secrets insert statement")
|
||||||
|
}
|
||||||
|
_, err = stmt.Exec(secrets.ShareId, secret.Key, secret.Value)
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrap(err, "error executing secrets insert statement")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (str *Store) GetSecrets(shareId int, trx *sqlx.Tx) (Secrets, error) {
|
||||||
|
secrets := Secrets{}
|
||||||
|
rows, err := trx.Queryx("select * from secrets where share_id = $1 and not deleted", shareId)
|
||||||
|
if err != nil {
|
||||||
|
return Secrets{}, errors.Wrap(err, "error getting all from secrets")
|
||||||
|
}
|
||||||
|
for rows.Next() {
|
||||||
|
secret := Secret{}
|
||||||
|
if err := rows.StructScan(&secret); err != nil {
|
||||||
|
return Secrets{}, errors.Wrap(err, "error scanning secrets")
|
||||||
|
}
|
||||||
|
secrets.Secrets = append(secrets.Secrets, secret)
|
||||||
|
}
|
||||||
|
return secrets, nil
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user