Files
Artem Kokos d1b1648940 Clean arch
2026-01-19 23:13:02 +07:00

35 lines
1006 B
Python

from typing import List
from .client import RedmineClient
from .models import IssueRecord
def fetch_issues_for_period(
client: RedmineClient,
from_date: str,
to_date: str
) -> List[IssueRecord]:
user_id = client.get_current_user_id()
time_entries = client.get_time_entries(user_id, from_date, to_date)
if not time_entries:
return []
issue_ids = list({str(e.issue.id) for e in time_entries if hasattr(e, 'issue') and e.issue})
issues = client.get_issues_by_ids(issue_ids)
records = []
for issue in issues:
project = str(getattr(issue, 'project', 'Unknown'))
version = str(getattr(issue, 'version', '<N/A>'))
status = str(getattr(issue, 'status', 'Unknown'))
records.append(IssueRecord(
project=project,
version=version,
issue_id=issue.id,
subject=issue.subject,
status=status
))
records.sort(key=lambda r: (r.project, r.version))
return records