LocalizationController.cs 2.6 KB

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