(preds ...interface{})
| 430 | } |
| 431 | |
| 432 | func (p *Postgres) getKey(preds ...interface{}) (*KeyPair, error) { |
| 433 | psql := sq.StatementBuilder.PlaceholderFormat(sq.Dollar). |
| 434 | Select("id", "public", "private", "deleted_at"). |
| 435 | From("kite.key") |
| 436 | |
| 437 | for _, pred := range preds { |
| 438 | psql = psql.Where(pred) |
| 439 | } |
| 440 | |
| 441 | sqlQuery, args, err := psql.ToSql() |
| 442 | if err != nil { |
| 443 | return nil, err |
| 444 | } |
| 445 | |
| 446 | var ( |
| 447 | kp KeyPair |
| 448 | t pq.NullTime |
| 449 | ) |
| 450 | |
| 451 | err = p.DB.QueryRow(sqlQuery, args...).Scan(&kp.ID, &kp.Public, &kp.Private, &t) |
| 452 | if err != nil { |
| 453 | if err == sql.ErrNoRows { |
| 454 | return nil, ErrNoKeyFound |
| 455 | } |
| 456 | return nil, err |
| 457 | } |
| 458 | |
| 459 | if t.Valid { |
| 460 | return nil, ErrKeyDeleted |
| 461 | } |
| 462 | |
| 463 | return &kp, nil |
| 464 | } |
| 465 | |
| 466 | func (p *Postgres) GetKeyFromID(id string) (*KeyPair, error) { |
| 467 | return p.getKey(sq.Eq{"id": id}) |
no outgoing calls
no test coverage detected