loadAIProviderKeysByProvider fetches keys for every live provider in one query and buckets the rows by ProviderID, so the list handler can avoid an N+1 fetch. Soft-deleted providers' keys are excluded by the query.
(ctx context.Context, store database.Store)
| 565 | // can avoid an N+1 fetch. Soft-deleted providers' keys are excluded |
| 566 | // by the query. |
| 567 | func loadAIProviderKeysByProvider(ctx context.Context, store database.Store) (map[uuid.UUID][]database.AIProviderKey, error) { |
| 568 | rows, err := store.GetAIProviderKeys(ctx, false) |
| 569 | if err != nil { |
| 570 | return nil, err |
| 571 | } |
| 572 | out := make(map[uuid.UUID][]database.AIProviderKey, len(rows)) |
| 573 | for _, row := range rows { |
| 574 | out[row.ProviderID] = append(out[row.ProviderID], row) |
| 575 | } |
| 576 | return out, nil |
| 577 | } |
| 578 | |
| 579 | // insertAIProviderKeys writes a fresh set of key rows for a provider |
| 580 | // inside a transaction. It returns the inserted rows in insertion |
no test coverage detected