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) {
|
||||
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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user