< Summary - Jellyfin

Information
Class: Jellyfin.Api.Controllers.LocalizationController
Assembly: Jellyfin.Api
File(s): /srv/git/jellyfin/Jellyfin.Api/Controllers/LocalizationController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 12
Coverable lines: 12
Total lines: 84
Line coverage: 0%
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%210%
GetCultures()100%210%
GetCountries()100%210%
GetParentalRatings()100%210%
GetLocalizationOptions()100%210%

File(s)

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

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4using MediaBrowser.Common.Api;
 5using MediaBrowser.Model.Entities;
 6using MediaBrowser.Model.Globalization;
 7using Microsoft.AspNetCore.Authorization;
 8using Microsoft.AspNetCore.Http;
 9using Microsoft.AspNetCore.Mvc;
 10
 11namespace Jellyfin.Api.Controllers;
 12
 13/// <summary>
 14/// Localization controller.
 15/// </summary>
 16[Authorize(Policy = Policies.FirstTimeSetupOrDefault)]
 17public class LocalizationController : BaseJellyfinApiController
 18{
 19    private readonly ILocalizationManager _localization;
 20
 21    /// <summary>
 22    /// Initializes a new instance of the <see cref="LocalizationController"/> class.
 23    /// </summary>
 24    /// <param name="localization">Instance of the <see cref="ILocalizationManager"/> interface.</param>
 025    public LocalizationController(ILocalizationManager localization)
 26    {
 027        _localization = localization;
 028    }
 29
 30    /// <summary>
 31    /// Gets known cultures.
 32    /// </summary>
 33    /// <response code="200">Known cultures returned.</response>
 34    /// <returns>An <see cref="OkResult"/> containing the list of cultures.</returns>
 35    [HttpGet("Cultures")]
 36    [ProducesResponseType(StatusCodes.Status200OK)]
 37    public ActionResult<IEnumerable<CultureDto>> GetCultures()
 38    {
 039        var allCultures = _localization.GetCultures();
 40
 041        var distinctCultures = allCultures
 042            .DistinctBy(c => c.DisplayName, StringComparer.OrdinalIgnoreCase)
 043            .OrderBy(c => c.DisplayName)
 044            .AsEnumerable();
 45
 046        return Ok(distinctCultures);
 47    }
 48
 49    /// <summary>
 50    /// Gets known countries.
 51    /// </summary>
 52    /// <response code="200">Known countries returned.</response>
 53    /// <returns>An <see cref="OkResult"/> containing the list of countries.</returns>
 54    [HttpGet("Countries")]
 55    [ProducesResponseType(StatusCodes.Status200OK)]
 56    public ActionResult<IReadOnlyList<CountryInfo>> GetCountries()
 57    {
 058        return Ok(_localization.GetCountries());
 59    }
 60
 61    /// <summary>
 62    /// Gets known parental ratings.
 63    /// </summary>
 64    /// <response code="200">Known parental ratings returned.</response>
 65    /// <returns>An <see cref="OkResult"/> containing the list of parental ratings.</returns>
 66    [HttpGet("ParentalRatings")]
 67    [ProducesResponseType(StatusCodes.Status200OK)]
 68    public ActionResult<IReadOnlyList<ParentalRating>> GetParentalRatings()
 69    {
 070        return Ok(_localization.GetParentalRatings());
 71    }
 72
 73    /// <summary>
 74    /// Gets localization options.
 75    /// </summary>
 76    /// <response code="200">Localization options returned.</response>
 77    /// <returns>An <see cref="OkResult"/> containing the list of localization options.</returns>
 78    [HttpGet("Options")]
 79    [ProducesResponseType(StatusCodes.Status200OK)]
 80    public ActionResult<IEnumerable<LocalizationOption>> GetLocalizationOptions()
 81    {
 082        return Ok(_localization.GetLocalizationOptions());
 83    }
 84}