'Retrieve an Issue
Return details on an individual issue. This returns the basic stats for
the issue (title, last seen, first seen), some overall numbers (number
of comments, user reports) as well as the summarized event data.
:pparam string issue_id: the ID of the issue to retrieve.
:auth: required'

@attach_scenarios([retrieve_aggregate_scenario])
def get(self, request, group):

    data = serialize(group, request.user)
    activity = self._get_activity(request, group, num=100)
    seen_by = self._get_seen_by(request, group)
    first_release = group.get_first_release()
    if (first_release is not None):
        last_release = group.get_last_release()
    else:
        last_release = None
    action_list = self._get_actions(request, group)
    now = timezone.now()
    hourly_stats = tsdb.rollup(tsdb.get_range(model=tsdb.models.group, keys=[group.id], end=now, start=(now - timedelta(days=1))), 3600)[group.id]
    daily_stats = tsdb.rollup(tsdb.get_range(model=tsdb.models.group, keys=[group.id], end=now, start=(now - timedelta(days=30))), (3600 * 24))[group.id]
    if first_release:
        first_release = self._get_release_info(request, group, first_release)
    if last_release:
        last_release = self._get_release_info(request, group, last_release)
    tags = list(GroupTagKey.objects.filter(group=group)[:100])
    participants = list(User.objects.filter(groupsubscription__is_active=True, groupsubscription__group=group))
    data.update({'firstRelease': first_release, 'lastRelease': last_release, 'activity': serialize(activity, request.user), 'seenBy': seen_by, 'participants': serialize(participants, request.user), 'pluginActions': action_list, 'pluginIssues': self._get_available_issue_plugins(request, group), 'pluginContexts': self._get_context_plugins(request, group), 'userReportCount': UserReport.objects.filter(group=group).count(), 'tags': sorted(serialize(tags, request.user), key=(lambda x: x['name'])), 'stats': {'24h': hourly_stats, '30d': daily_stats}})
    return Response(data)
