Skip to content

Commit d99a91a

Browse files
committed
refactor(stovepipe): separate history URI read
1 parent d74de0f commit d99a91a

1 file changed

Lines changed: 21 additions & 13 deletions

File tree

‎stovepipe/controller/request_history.go‎

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -92,38 +92,46 @@ func (c *requestHistoryController) GetRequestHistoryByURI(ctx context.Context, r
9292
op := metrics.Begin(c.metricsScope, "get_by_uri", metrics.StorageLatencyBuckets, metrics.TagsFromContext(ctx)...)
9393
defer func() { op.Complete(retErr) }()
9494

95+
history, retErr := c.readHistoryByURI(ctx, req)
96+
if retErr != nil {
97+
return nil, retErr
98+
}
99+
c.logger.Debugw("request history retrieved by URI",
100+
"uri", req.URI,
101+
"request_id", history.RequestID,
102+
"queue", req.Queue,
103+
"event_count", len(history.Events),
104+
)
105+
return []entity.RequestHistory{history}, nil
106+
}
107+
108+
func (c *requestHistoryController) readHistoryByURI(ctx context.Context, req entity.GetRequestHistoryByURIRequest) (entity.RequestHistory, error) {
95109
if err := validateHistoryIdentifier("queue", req.Queue); err != nil {
96-
return nil, fmt.Errorf("GetRequestHistoryByURI invalid queue: %w", err)
110+
return entity.RequestHistory{}, fmt.Errorf("GetRequestHistoryByURI invalid queue: %w", err)
97111
}
98112
if err := validateHistoryIdentifier("URI", req.URI); err != nil {
99-
return nil, fmt.Errorf("GetRequestHistoryByURI invalid request: %w", err)
113+
return entity.RequestHistory{}, fmt.Errorf("GetRequestHistoryByURI invalid request: %w", err)
100114
}
101115

102116
stores, err := c.stores.For(storage.Config{QueueName: req.Queue})
103117
if err != nil {
104-
return nil, fmt.Errorf("GetRequestHistoryByURI failed to resolve storage for queue %q: %w", req.Queue, err)
118+
return entity.RequestHistory{}, fmt.Errorf("GetRequestHistoryByURI failed to resolve storage for queue %q: %w", req.Queue, err)
105119
}
106120

107121
requestID, err := stores.GetRequestURIStore().GetIDByURI(ctx, req.URI)
108122
if err != nil {
109123
if storage.IsNotFound(err) {
110-
return nil, errs.NewUserError(&RequestHistoryNotFoundError{URI: req.URI})
124+
return entity.RequestHistory{}, errs.NewUserError(&RequestHistoryNotFoundError{URI: req.URI})
111125
}
112-
return nil, fmt.Errorf("GetRequestHistoryByURI failed to resolve request URI %s: %w", req.URI, err)
126+
return entity.RequestHistory{}, fmt.Errorf("GetRequestHistoryByURI failed to resolve request URI %s: %w", req.URI, err)
113127
}
114128

115129
logs, err := loadRequestLogs(ctx, stores.GetRequestLogStore(), requestID, &RequestHistoryNotFoundError{URI: req.URI})
116130
if err != nil {
117-
return nil, fmt.Errorf("GetRequestHistoryByURI failed to list request logs uri=%s request_id=%s: %w", req.URI, requestID, err)
131+
return entity.RequestHistory{}, fmt.Errorf("GetRequestHistoryByURI failed to list request logs uri=%s request_id=%s: %w", req.URI, requestID, err)
118132
}
119133

120-
c.logger.Debugw("request history retrieved by URI",
121-
"uri", req.URI,
122-
"request_id", requestID,
123-
"queue", req.Queue,
124-
"event_count", len(logs),
125-
)
126-
return []entity.RequestHistory{{RequestID: requestID, Events: logs}}, nil
134+
return entity.RequestHistory{RequestID: requestID, Events: logs}, nil
127135
}
128136

129137
func loadRequestLogs(ctx context.Context, store storage.RequestLogStore, requestID string, notFound *RequestHistoryNotFoundError) ([]entity.RequestLog, error) {

0 commit comments

Comments
 (0)