Skip to content

Commit fa206cf

Browse files
authored
refactor: remove dead code and optimize slice allocation in transit module (#101)
- Remove unused `List` repository methods from PostgreSQL and MySQL transit key repositories. - Optimize `encryptedData` slice allocation in `Encrypt` use case method to pre-allocate exact capacity. - This aligns with the "improve-transit" effort to reduce maintenance surface and improve performance.
1 parent 1bf20be commit fa206cf

File tree

3 files changed

+3
-127
lines changed

3 files changed

+3
-127
lines changed

internal/transit/repository/mysql/mysql_transit_key_repository.go

Lines changed: 0 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -155,74 +155,6 @@ func (m *MySQLTransitKeyRepository) GetByNameAndVersion(
155155
return &transitKey, nil
156156
}
157157

158-
// List retrieves transit keys ordered by name ascending with pagination.
159-
// Returns the latest version for each key.
160-
func (m *MySQLTransitKeyRepository) List(
161-
ctx context.Context,
162-
offset, limit int,
163-
) ([]*transitDomain.TransitKey, error) {
164-
querier := database.GetTx(ctx, m.db)
165-
166-
query := `
167-
SELECT tk.id, tk.name, tk.version, tk.dek_id, tk.created_at, tk.deleted_at
168-
FROM transit_keys tk
169-
INNER JOIN (
170-
SELECT name, MAX(version) as max_version
171-
FROM transit_keys
172-
WHERE deleted_at IS NULL
173-
GROUP BY name
174-
ORDER BY name ASC
175-
LIMIT ? OFFSET ?
176-
) latest ON tk.name = latest.name AND tk.version = latest.max_version
177-
ORDER BY tk.name ASC`
178-
179-
rows, err := querier.QueryContext(ctx, query, limit, offset)
180-
if err != nil {
181-
return nil, apperrors.Wrap(err, "failed to list transit keys")
182-
}
183-
defer func() {
184-
_ = rows.Close()
185-
}()
186-
187-
var transitKeys []*transitDomain.TransitKey
188-
for rows.Next() {
189-
var transitKey transitDomain.TransitKey
190-
var id, dekID []byte
191-
192-
err := rows.Scan(
193-
&id,
194-
&transitKey.Name,
195-
&transitKey.Version,
196-
&dekID,
197-
&transitKey.CreatedAt,
198-
&transitKey.DeletedAt,
199-
)
200-
if err != nil {
201-
return nil, apperrors.Wrap(err, "failed to scan transit key")
202-
}
203-
204-
if err := transitKey.ID.UnmarshalBinary(id); err != nil {
205-
return nil, apperrors.Wrap(err, "failed to unmarshal transit key id")
206-
}
207-
208-
if err := transitKey.DekID.UnmarshalBinary(dekID); err != nil {
209-
return nil, apperrors.Wrap(err, "failed to unmarshal dek id")
210-
}
211-
212-
transitKeys = append(transitKeys, &transitKey)
213-
}
214-
215-
if err := rows.Err(); err != nil {
216-
return nil, apperrors.Wrap(err, "error iterating transit keys")
217-
}
218-
219-
if transitKeys == nil {
220-
transitKeys = make([]*transitDomain.TransitKey, 0)
221-
}
222-
223-
return transitKeys, nil
224-
}
225-
226158
// ListCursor retrieves transit keys ordered by name ascending using cursor-based pagination.
227159
// Returns the latest version for each key.
228160
func (m *MySQLTransitKeyRepository) ListCursor(

internal/transit/repository/postgresql/postgresql_transit_key_repository.go

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -123,63 +123,6 @@ func (p *PostgreSQLTransitKeyRepository) GetByNameAndVersion(
123123
return &transitKey, nil
124124
}
125125

126-
// List retrieves transit keys ordered by name ascending with pagination.
127-
// Returns the latest version for each key.
128-
func (p *PostgreSQLTransitKeyRepository) List(
129-
ctx context.Context,
130-
offset, limit int,
131-
) ([]*transitDomain.TransitKey, error) {
132-
querier := database.GetTx(ctx, p.db)
133-
134-
query := `
135-
SELECT tk.id, tk.name, tk.version, tk.dek_id, tk.created_at, tk.deleted_at
136-
FROM transit_keys tk
137-
INNER JOIN (
138-
SELECT name, MAX(version) as max_version
139-
FROM transit_keys
140-
WHERE deleted_at IS NULL
141-
GROUP BY name
142-
ORDER BY name ASC
143-
LIMIT $1 OFFSET $2
144-
) latest ON tk.name = latest.name AND tk.version = latest.max_version
145-
ORDER BY tk.name ASC`
146-
147-
rows, err := querier.QueryContext(ctx, query, limit, offset)
148-
if err != nil {
149-
return nil, apperrors.Wrap(err, "failed to list transit keys")
150-
}
151-
defer func() {
152-
_ = rows.Close()
153-
}()
154-
155-
var transitKeys []*transitDomain.TransitKey
156-
for rows.Next() {
157-
var transitKey transitDomain.TransitKey
158-
err := rows.Scan(
159-
&transitKey.ID,
160-
&transitKey.Name,
161-
&transitKey.Version,
162-
&transitKey.DekID,
163-
&transitKey.CreatedAt,
164-
&transitKey.DeletedAt,
165-
)
166-
if err != nil {
167-
return nil, apperrors.Wrap(err, "failed to scan transit key")
168-
}
169-
transitKeys = append(transitKeys, &transitKey)
170-
}
171-
172-
if err := rows.Err(); err != nil {
173-
return nil, apperrors.Wrap(err, "error iterating transit keys")
174-
}
175-
176-
if transitKeys == nil {
177-
transitKeys = make([]*transitDomain.TransitKey, 0)
178-
}
179-
180-
return transitKeys, nil
181-
}
182-
183126
// ListCursor retrieves transit keys ordered by name ascending using cursor-based pagination.
184127
// Returns the latest version for each key.
185128
func (p *PostgreSQLTransitKeyRepository) ListCursor(

internal/transit/usecase/transit_key_usecase.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -201,8 +201,9 @@ func (t *transitKeyUseCase) Encrypt(
201201

202202
// Combine ciphertext and nonce (nonce is prepended to ciphertext by AEAD)
203203
// The AEAD Encrypt returns ciphertext with authentication tag, we need to store nonce separately
204-
//nolint:gocritic // intentionally creating new slice with combined nonce and ciphertext
205-
encryptedData := append(nonce, ciphertext...)
204+
encryptedData := make([]byte, 0, len(nonce)+len(ciphertext))
205+
encryptedData = append(encryptedData, nonce...)
206+
encryptedData = append(encryptedData, ciphertext...)
206207

207208
return &transitDomain.EncryptedBlob{
208209
Version: transitKey.Version,

0 commit comments

Comments
 (0)