ActivityLogService.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System;
  2. using System.Globalization;
  3. using MediaBrowser.Controller.Configuration;
  4. using MediaBrowser.Controller.Net;
  5. using MediaBrowser.Model.Activity;
  6. using MediaBrowser.Model.Querying;
  7. using MediaBrowser.Model.Services;
  8. using Microsoft.Extensions.Logging;
  9. namespace MediaBrowser.Api.System
  10. {
  11. [Route("/System/ActivityLog/Entries", "GET", Summary = "Gets activity log entries")]
  12. public class GetActivityLogs : IReturn<QueryResult<ActivityLogEntry>>
  13. {
  14. /// <summary>
  15. /// Skips over a given number of items within the results. Use for paging.
  16. /// </summary>
  17. /// <value>The start index.</value>
  18. [ApiMember(Name = "StartIndex", Description = "Optional. The record index to start at. All items with a lower index will be dropped from the results.", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
  19. public int? StartIndex { get; set; }
  20. /// <summary>
  21. /// The maximum number of items to return
  22. /// </summary>
  23. /// <value>The limit.</value>
  24. [ApiMember(Name = "Limit", Description = "Optional. The maximum number of records to return", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
  25. public int? Limit { get; set; }
  26. [ApiMember(Name = "MinDate", Description = "Optional. The minimum date. Format = ISO", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
  27. public string MinDate { get; set; }
  28. public bool? HasUserId { get; set; }
  29. }
  30. [Authenticated(Roles = "Admin")]
  31. public class ActivityLogService : BaseApiService
  32. {
  33. private readonly IActivityManager _activityManager;
  34. public ActivityLogService(
  35. ILogger<ActivityLogService> logger,
  36. IServerConfigurationManager serverConfigurationManager,
  37. IHttpResultFactory httpResultFactory,
  38. IActivityManager activityManager)
  39. : base(logger, serverConfigurationManager, httpResultFactory)
  40. {
  41. _activityManager = activityManager;
  42. }
  43. public object Get(GetActivityLogs request)
  44. {
  45. DateTime? minDate = string.IsNullOrWhiteSpace(request.MinDate) ?
  46. (DateTime?)null :
  47. DateTime.Parse(request.MinDate, null, DateTimeStyles.RoundtripKind).ToUniversalTime();
  48. var result = _activityManager.GetActivityLogEntries(minDate, request.HasUserId, request.StartIndex, request.Limit);
  49. return ToOptimizedResult(result);
  50. }
  51. }
  52. }