< Summary - Jellyfin

Information
Class: Jellyfin.Api.Controllers.ActivityLogController
Assembly: Jellyfin.Api
File(s): /srv/git/jellyfin/Jellyfin.Api/Controllers/ActivityLogController.cs
Line coverage
100%
Covered lines: 3
Uncovered lines: 0
Coverable lines: 3
Total lines: 57
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%

File(s)

/srv/git/jellyfin/Jellyfin.Api/Controllers/ActivityLogController.cs

#LineLine coverage
 1using System;
 2using System.Threading.Tasks;
 3using Jellyfin.Api.Constants;
 4using Jellyfin.Data.Queries;
 5using MediaBrowser.Common.Api;
 6using MediaBrowser.Model.Activity;
 7using MediaBrowser.Model.Querying;
 8using Microsoft.AspNetCore.Authorization;
 9using Microsoft.AspNetCore.Http;
 10using Microsoft.AspNetCore.Mvc;
 11
 12namespace Jellyfin.Api.Controllers;
 13
 14/// <summary>
 15/// Activity log controller.
 16/// </summary>
 17[Route("System/ActivityLog")]
 18[Authorize(Policy = Policies.RequiresElevation)]
 19public class ActivityLogController : BaseJellyfinApiController
 20{
 21    private readonly IActivityManager _activityManager;
 22
 23    /// <summary>
 24    /// Initializes a new instance of the <see cref="ActivityLogController"/> class.
 25    /// </summary>
 26    /// <param name="activityManager">Instance of <see cref="IActivityManager"/> interface.</param>
 127    public ActivityLogController(IActivityManager activityManager)
 28    {
 129        _activityManager = activityManager;
 130    }
 31
 32    /// <summary>
 33    /// Gets activity log entries.
 34    /// </summary>
 35    /// <param name="startIndex">Optional. The record index to start at. All items with a lower index will be dropped fr
 36    /// <param name="limit">Optional. The maximum number of records to return.</param>
 37    /// <param name="minDate">Optional. The minimum date. Format = ISO.</param>
 38    /// <param name="hasUserId">Optional. Filter log entries if it has user id, or not.</param>
 39    /// <response code="200">Activity log returned.</response>
 40    /// <returns>A <see cref="QueryResult{ActivityLogEntry}"/> containing the log entries.</returns>
 41    [HttpGet("Entries")]
 42    [ProducesResponseType(StatusCodes.Status200OK)]
 43    public async Task<ActionResult<QueryResult<ActivityLogEntry>>> GetLogEntries(
 44        [FromQuery] int? startIndex,
 45        [FromQuery] int? limit,
 46        [FromQuery] DateTime? minDate,
 47        [FromQuery] bool? hasUserId)
 48    {
 49        return await _activityManager.GetPagedResultAsync(new ActivityLogQuery
 50        {
 51            Skip = startIndex,
 52            Limit = limit,
 53            MinDate = minDate,
 54            HasUserId = hasUserId
 55        }).ConfigureAwait(false);
 56    }
 57}