47 lines
973 B
Go
47 lines
973 B
Go
|
package model
|
||
|
|
||
|
import (
|
||
|
"github.com/drone/drone/shared/database"
|
||
|
"github.com/russross/meddler"
|
||
|
)
|
||
|
|
||
|
type Key struct {
|
||
|
ID int64 `json:"-" meddler:"key_id,pk"`
|
||
|
RepoID int64 `json:"-" meddler:"key_repo_id"`
|
||
|
Public string `json:"public" meddler:"key_public"`
|
||
|
Private string `json:"private" meddler:"key_private"`
|
||
|
}
|
||
|
|
||
|
func GetKey(db meddler.DB, repo *Repo) (*Key, error) {
|
||
|
var key = new(Key)
|
||
|
var err = meddler.QueryRow(db, key, database.Rebind(keyQuery), repo.ID)
|
||
|
return key, err
|
||
|
}
|
||
|
|
||
|
func CreateKey(db meddler.DB, key *Key) error {
|
||
|
return meddler.Save(db, keyTable, key)
|
||
|
}
|
||
|
|
||
|
func UpdateKey(db meddler.DB, key *Key) error {
|
||
|
return meddler.Save(db, keyTable, key)
|
||
|
}
|
||
|
|
||
|
func DeleteKey(db meddler.DB, repo *Repo) error {
|
||
|
var _, err = db.Exec(database.Rebind(keyDeleteStmt), repo.ID)
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
const keyTable = "keys"
|
||
|
|
||
|
const keyQuery = `
|
||
|
SELECT *
|
||
|
FROM keys
|
||
|
WHERE key_repo_id=?
|
||
|
LIMIT 1
|
||
|
`
|
||
|
|
||
|
const keyDeleteStmt = `
|
||
|
DELETE FROM keys
|
||
|
WHERE key_repo_id=?
|
||
|
`
|