LocalizationController.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. using System.Collections.Generic;
  2. using Jellyfin.Api.Constants;
  3. using MediaBrowser.Model.Entities;
  4. using MediaBrowser.Model.Globalization;
  5. using Microsoft.AspNetCore.Authorization;
  6. using Microsoft.AspNetCore.Http;
  7. using Microsoft.AspNetCore.Mvc;
  8. namespace Jellyfin.Api.Controllers;
  9. /// <summary>
  10. /// Localization controller.
  11. /// </summary>
  12. [Authorize(Policy = Policies.FirstTimeSetupOrDefault)]
  13. public class LocalizationController : BaseJellyfinApiController
  14. {
  15. private readonly ILocalizationManager _localization;
  16. /// <summary>
  17. /// Initializes a new instance of the <see cref="LocalizationController"/> class.
  18. /// </summary>
  19. /// <param name="localization">Instance of the <see cref="ILocalizationManager"/> interface.</param>
  20. public LocalizationController(ILocalizationManager localization)
  21. {
  22. _localization = localization;
  23. }
  24. /// <summary>
  25. /// Gets known cultures.
  26. /// </summary>
  27. /// <response code="200">Known cultures returned.</response>
  28. /// <returns>An <see cref="OkResult"/> containing the list of cultures.</returns>
  29. [HttpGet("Cultures")]
  30. [ProducesResponseType(StatusCodes.Status200OK)]
  31. public ActionResult<IEnumerable<CultureDto>> GetCultures()
  32. {
  33. return Ok(_localization.GetCultures());
  34. }
  35. /// <summary>
  36. /// Gets known countries.
  37. /// </summary>
  38. /// <response code="200">Known countries returned.</response>
  39. /// <returns>An <see cref="OkResult"/> containing the list of countries.</returns>
  40. [HttpGet("Countries")]
  41. [ProducesResponseType(StatusCodes.Status200OK)]
  42. public ActionResult<IEnumerable<CountryInfo>> GetCountries()
  43. {
  44. return Ok(_localization.GetCountries());
  45. }
  46. /// <summary>
  47. /// Gets known parental ratings.
  48. /// </summary>
  49. /// <response code="200">Known parental ratings returned.</response>
  50. /// <returns>An <see cref="OkResult"/> containing the list of parental ratings.</returns>
  51. [HttpGet("ParentalRatings")]
  52. [ProducesResponseType(StatusCodes.Status200OK)]
  53. public ActionResult<IEnumerable<ParentalRating>> GetParentalRatings()
  54. {
  55. return Ok(_localization.GetParentalRatings());
  56. }
  57. /// <summary>
  58. /// Gets localization options.
  59. /// </summary>
  60. /// <response code="200">Localization options returned.</response>
  61. /// <returns>An <see cref="OkResult"/> containing the list of localization options.</returns>
  62. [HttpGet("Options")]
  63. [ProducesResponseType(StatusCodes.Status200OK)]
  64. public ActionResult<IEnumerable<LocalizationOption>> GetLocalizationOptions()
  65. {
  66. return Ok(_localization.GetLocalizationOptions());
  67. }
  68. }