blob: a76186ee2761b618fa60b23b40d4c8eee29bf53a [file] [log] [blame]
package model
import (
"context"
"fmt"
"time"
)
func (s *sqlModel) UpdatePGPKey(ctx context.Context, key *PeerPGPKey) error {
q := `
INSERT INTO peer_pgp_keys
(peer_id, fingerprint, time_created)
SELECT
peers.id, :fingerprint, :time_created
FROM peers
WHERE peers.asn = :asn
ON CONFLICT (peer_id)
DO UPDATE SET
fingerprint = :fingerprint,
time_created = :time_created
`
data := &sqlPeerPGPKey{
Fingerprint: key.Fingerprint,
ASN: fmt.Sprintf("%d", key.PeerASN),
TimeCreated: time.Now().UnixNano(),
}
if _, err := s.db.NamedExecContext(ctx, q, data); err != nil {
return fmt.Errorf("INSERT peer_pgp_keys: %v", err)
}
return nil
}