test: 完善 UsageLogRepo 测试 stub 的过滤逻辑 (#50)
This commit is contained in:
@@ -925,8 +925,38 @@ func (r *stubUsageLogRepo) GetUserModelStats(ctx context.Context, userID int64,
|
|||||||
|
|
||||||
func (r *stubUsageLogRepo) ListWithFilters(ctx context.Context, params pagination.PaginationParams, filters usagestats.UsageLogFilters) ([]service.UsageLog, *pagination.PaginationResult, error) {
|
func (r *stubUsageLogRepo) ListWithFilters(ctx context.Context, params pagination.PaginationParams, filters usagestats.UsageLogFilters) ([]service.UsageLog, *pagination.PaginationResult, error) {
|
||||||
logs := r.userLogs[filters.UserID]
|
logs := r.userLogs[filters.UserID]
|
||||||
total := int64(len(logs))
|
|
||||||
out := paginateLogs(logs, params)
|
// Apply filters
|
||||||
|
var filtered []service.UsageLog
|
||||||
|
for _, log := range logs {
|
||||||
|
// Apply ApiKeyID filter
|
||||||
|
if filters.ApiKeyID > 0 && log.ApiKeyID != filters.ApiKeyID {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Apply Model filter
|
||||||
|
if filters.Model != "" && log.Model != filters.Model {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Apply Stream filter
|
||||||
|
if filters.Stream != nil && log.Stream != *filters.Stream {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Apply BillingType filter
|
||||||
|
if filters.BillingType != nil && log.BillingType != *filters.BillingType {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
// Apply time range filters
|
||||||
|
if filters.StartTime != nil && log.CreatedAt.Before(*filters.StartTime) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if filters.EndTime != nil && log.CreatedAt.After(*filters.EndTime) {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
filtered = append(filtered, log)
|
||||||
|
}
|
||||||
|
|
||||||
|
total := int64(len(filtered))
|
||||||
|
out := paginateLogs(filtered, params)
|
||||||
return out, paginationResult(total, params), nil
|
return out, paginationResult(total, params), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user