Browse Source

Remove leading slash from route attributes

crobibero 4 năm trước cách đây
mục cha
commit
8f6c2e7679

+ 0 - 287
Emby.Server.Implementations/Services/SwaggerService.cs

@@ -1,287 +0,0 @@
-#pragma warning disable CS1591
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using Emby.Server.Implementations.HttpServer;
-using MediaBrowser.Controller.Net;
-using MediaBrowser.Model.Services;
-
-namespace Emby.Server.Implementations.Services
-{
-    [Route("/swagger", "GET", Summary = "Gets the swagger specifications")]
-    [Route("/swagger.json", "GET", Summary = "Gets the swagger specifications")]
-    public class GetSwaggerSpec : IReturn<SwaggerSpec>
-    {
-    }
-
-    public class SwaggerSpec
-    {
-        public string swagger { get; set; }
-
-        public string[] schemes { get; set; }
-
-        public SwaggerInfo info { get; set; }
-
-        public string host { get; set; }
-
-        public string basePath { get; set; }
-
-        public SwaggerTag[] tags { get; set; }
-
-        public IDictionary<string, Dictionary<string, SwaggerMethod>> paths { get; set; }
-
-        public Dictionary<string, SwaggerDefinition> definitions { get; set; }
-
-        public SwaggerComponents components { get; set; }
-    }
-
-    public class SwaggerComponents
-    {
-        public Dictionary<string, SwaggerSecurityScheme> securitySchemes { get; set; }
-    }
-
-    public class SwaggerSecurityScheme
-    {
-        public string name { get; set; }
-
-        public string type { get; set; }
-
-        public string @in { get; set; }
-    }
-
-    public class SwaggerInfo
-    {
-        public string description { get; set; }
-
-        public string version { get; set; }
-
-        public string title { get; set; }
-
-        public string termsOfService { get; set; }
-
-        public SwaggerConcactInfo contact { get; set; }
-    }
-
-    public class SwaggerConcactInfo
-    {
-        public string email { get; set; }
-
-        public string name { get; set; }
-
-        public string url { get; set; }
-    }
-
-    public class SwaggerTag
-    {
-        public string description { get; set; }
-
-        public string name { get; set; }
-    }
-
-    public class SwaggerMethod
-    {
-        public string summary { get; set; }
-
-        public string description { get; set; }
-
-        public string[] tags { get; set; }
-
-        public string operationId { get; set; }
-
-        public string[] consumes { get; set; }
-
-        public string[] produces { get; set; }
-
-        public SwaggerParam[] parameters { get; set; }
-
-        public Dictionary<string, SwaggerResponse> responses { get; set; }
-
-        public Dictionary<string, string[]>[] security { get; set; }
-    }
-
-    public class SwaggerParam
-    {
-        public string @in { get; set; }
-
-        public string name { get; set; }
-
-        public string description { get; set; }
-
-        public bool required { get; set; }
-
-        public string type { get; set; }
-
-        public string collectionFormat { get; set; }
-    }
-
-    public class SwaggerResponse
-    {
-        public string description { get; set; }
-
-        // ex. "$ref":"#/definitions/Pet"
-        public Dictionary<string, string> schema { get; set; }
-    }
-
-    public class SwaggerDefinition
-    {
-        public string type { get; set; }
-
-        public Dictionary<string, SwaggerProperty> properties { get; set; }
-    }
-
-    public class SwaggerProperty
-    {
-        public string type { get; set; }
-
-        public string format { get; set; }
-
-        public string description { get; set; }
-
-        public string[] @enum { get; set; }
-
-        public string @default { get; set; }
-    }
-
-    public class SwaggerService : IService, IRequiresRequest
-    {
-        private readonly IHttpServer _httpServer;
-        private SwaggerSpec _spec;
-
-        public IRequest Request { get; set; }
-
-        public SwaggerService(IHttpServer httpServer)
-        {
-            _httpServer = httpServer;
-        }
-
-        public object Get(GetSwaggerSpec request)
-        {
-            return _spec ?? (_spec = GetSpec());
-        }
-
-        private SwaggerSpec GetSpec()
-        {
-            string host = null;
-            Uri uri;
-            if (Uri.TryCreate(Request.RawUrl, UriKind.Absolute, out uri))
-            {
-                host = uri.Host;
-            }
-
-            var securitySchemes = new Dictionary<string, SwaggerSecurityScheme>();
-
-            securitySchemes["api_key"] = new SwaggerSecurityScheme
-            {
-                name = "api_key",
-                type = "apiKey",
-                @in = "query"
-            };
-
-            var spec = new SwaggerSpec
-            {
-                schemes = new[] { "http" },
-                tags = GetTags(),
-                swagger = "2.0",
-                info = new SwaggerInfo
-                {
-                    title = "Jellyfin Server API",
-                    version = "1.0.0",
-                    description = "Explore the Jellyfin Server API",
-                    contact = new SwaggerConcactInfo
-                    {
-                        name = "Jellyfin Community",
-                        url = "https://jellyfin.readthedocs.io/en/latest/user-docs/getting-help/"
-                    }
-                },
-                paths = GetPaths(),
-                definitions = GetDefinitions(),
-                basePath = "/jellyfin",
-                host = host,
-
-                components = new SwaggerComponents
-                {
-                    securitySchemes = securitySchemes
-                }
-            };
-
-            return spec;
-        }
-
-
-        private SwaggerTag[] GetTags()
-        {
-            return Array.Empty<SwaggerTag>();
-        }
-
-        private Dictionary<string, SwaggerDefinition> GetDefinitions()
-        {
-            return new Dictionary<string, SwaggerDefinition>();
-        }
-
-        private IDictionary<string, Dictionary<string, SwaggerMethod>> GetPaths()
-        {
-            var paths = new SortedDictionary<string, Dictionary<string, SwaggerMethod>>();
-
-            // REVIEW: this can be done better
-            var all = ((HttpListenerHost)_httpServer).ServiceController.RestPathMap.OrderBy(i => i.Key, StringComparer.OrdinalIgnoreCase).ToList();
-
-            foreach (var current in all)
-            {
-                foreach (var info in current.Value)
-                {
-                    if (info.IsHidden)
-                    {
-                        continue;
-                    }
-
-                    if (info.Path.StartsWith("/mediabrowser", StringComparison.OrdinalIgnoreCase)
-                        || info.Path.StartsWith("/jellyfin", StringComparison.OrdinalIgnoreCase))
-                    {
-                        continue;
-                    }
-
-                    paths[info.Path] = GetPathInfo(info);
-                }
-            }
-
-            return paths;
-        }
-
-        private Dictionary<string, SwaggerMethod> GetPathInfo(RestPath info)
-        {
-            var result = new Dictionary<string, SwaggerMethod>();
-
-            foreach (var verb in info.Verbs)
-            {
-                var responses = new Dictionary<string, SwaggerResponse>
-                {
-                    { "200", new SwaggerResponse { description = "OK" } }
-                };
-
-                var apiKeySecurity = new Dictionary<string, string[]>
-                {
-                    { "api_key",  Array.Empty<string>() }
-                };
-
-                result[verb.ToLowerInvariant()] = new SwaggerMethod
-                {
-                    summary = info.Summary,
-                    description = info.Description,
-                    produces = new[] { "application/json" },
-                    consumes = new[] { "application/json" },
-                    operationId = info.RequestType.Name,
-                    tags = Array.Empty<string>(),
-
-                    parameters = Array.Empty<SwaggerParam>(),
-
-                    responses = responses,
-
-                    security = new[] { apiKeySecurity }
-                };
-            }
-
-            return result;
-        }
-    }
-}

+ 1 - 1
Jellyfin.Api/Controllers/ActivityLogController.cs

@@ -13,7 +13,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// Activity log controller.
     /// </summary>
-    [Route("/System/ActivityLog")]
+    [Route("System/ActivityLog")]
     [Authorize(Policy = Policies.RequiresElevation)]
     public class ActivityLogController : BaseJellyfinApiController
     {

+ 1 - 1
Jellyfin.Api/Controllers/ApiKeyController.cs

@@ -15,7 +15,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// Authentication controller.
     /// </summary>
-    [Route("/Auth")]
+    [Route("Auth")]
     public class ApiKeyController : BaseJellyfinApiController
     {
         private readonly ISessionManager _sessionManager;

+ 1 - 1
Jellyfin.Api/Controllers/ArtistsController.cs

@@ -19,7 +19,7 @@ namespace Jellyfin.Api.Controllers
     /// The artists controller.
     /// </summary>
     [Authorize(Policy = Policies.DefaultAuthorization)]
-    [Route("/Artists")]
+    [Route("Artists")]
     public class ArtistsController : BaseJellyfinApiController
     {
         private readonly ILibraryManager _libraryManager;

+ 1 - 1
Jellyfin.Api/Controllers/CollectionController.cs

@@ -16,7 +16,7 @@ namespace Jellyfin.Api.Controllers
     /// The collection controller.
     /// </summary>
     [Authorize(Policy = Policies.DefaultAuthorization)]
-    [Route("/Collections")]
+    [Route("Collections")]
     public class CollectionController : BaseJellyfinApiController
     {
         private readonly ICollectionManager _collectionManager;

+ 1 - 2
Jellyfin.Api/Controllers/ItemRefreshController.cs

@@ -13,8 +13,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// Item Refresh Controller.
     /// </summary>
-    /// [Authenticated]
-    [Route("/Items")]
+    [Route("Items")]
     [Authorize(Policy = Policies.DefaultAuthorization)]
     public class ItemRefreshController : BaseJellyfinApiController
     {

+ 1 - 1
Jellyfin.Api/Controllers/LibraryStructureController.cs

@@ -24,7 +24,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// The library structure controller.
     /// </summary>
-    [Route("/Library/VirtualFolders")]
+    [Route("Library/VirtualFolders")]
     [Authorize(Policy = Policies.FirstTimeSetupOrElevated)]
     public class LibraryStructureController : BaseJellyfinApiController
     {

+ 1 - 1
Jellyfin.Api/Controllers/SearchController.cs

@@ -23,7 +23,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// Search controller.
     /// </summary>
-    [Route("/Search/Hints")]
+    [Route("Search/Hints")]
     [Authorize(Policy = Policies.DefaultAuthorization)]
     public class SearchController : BaseJellyfinApiController
     {

+ 1 - 1
Jellyfin.Api/Controllers/SystemController.cs

@@ -23,7 +23,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// The system controller.
     /// </summary>
-    [Route("/System")]
+    [Route("System")]
     public class SystemController : BaseJellyfinApiController
     {
         private readonly IServerApplicationHost _appHost;

+ 1 - 1
Jellyfin.Api/Controllers/TimeSyncController.cs

@@ -9,7 +9,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// The time sync controller.
     /// </summary>
-    [Route("/GetUtcTime")]
+    [Route("GetUtcTime")]
     public class TimeSyncController : BaseJellyfinApiController
     {
         /// <summary>

+ 1 - 1
Jellyfin.Api/Controllers/TvShowsController.cs

@@ -22,7 +22,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// The tv shows controller.
     /// </summary>
-    [Route("/Shows")]
+    [Route("Shows")]
     [Authorize(Policy = Policies.DefaultAuthorization)]
     public class TvShowsController : BaseJellyfinApiController
     {

+ 1 - 1
Jellyfin.Api/Controllers/UserController.cs

@@ -27,7 +27,7 @@ namespace Jellyfin.Api.Controllers
     /// <summary>
     /// User controller.
     /// </summary>
-    [Route("/Users")]
+    [Route("Users")]
     public class UserController : BaseJellyfinApiController
     {
         private readonly IUserManager _userManager;