mirror of
https://github.com/openziti/zrok.git
synced 2025-06-26 04:31:30 +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