aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Services/SwaggerService.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-16 00:14:10 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-16 00:14:10 -0400
commitbc643d4dda52cfa1994069e11554c88840bb13dc (patch)
tree1ad9711381ddf20a61dedf068ca073de1c37a88c /Emby.Server.Implementations/Services/SwaggerService.cs
parentf3096b83403d6ad8f5a087d46d04d889f96740a7 (diff)
move reports to plugin
Diffstat (limited to 'Emby.Server.Implementations/Services/SwaggerService.cs')
-rw-r--r--Emby.Server.Implementations/Services/SwaggerService.cs46
1 files changed, 43 insertions, 3 deletions
diff --git a/Emby.Server.Implementations/Services/SwaggerService.cs b/Emby.Server.Implementations/Services/SwaggerService.cs
index be3b4cbba..fc2bdbd55 100644
--- a/Emby.Server.Implementations/Services/SwaggerService.cs
+++ b/Emby.Server.Implementations/Services/SwaggerService.cs
@@ -23,6 +23,19 @@ namespace Emby.Server.Implementations.Services
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
@@ -38,6 +51,8 @@ namespace Emby.Server.Implementations.Services
public class SwaggerConcactInfo
{
public string email { get; set; }
+ public string name { get; set; }
+ public string url { get; set; }
}
public class SwaggerTag
@@ -56,6 +71,7 @@ namespace Emby.Server.Implementations.Services
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
@@ -111,6 +127,15 @@ namespace Emby.Server.Implementations.Services
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" },
@@ -123,14 +148,20 @@ namespace Emby.Server.Implementations.Services
description = "Explore the Emby Server API",
contact = new SwaggerConcactInfo
{
- email = "api@emby.media"
+ name = "Emby Developer Community",
+ url = "https://emby.media/community/index.php?/forum/47-developer-api"
},
termsOfService = "https://emby.media/terms"
},
paths = GetPaths(),
definitions = GetDefinitions(),
basePath = "/emby",
- host = host
+ host = host,
+
+ components = new SwaggerComponents
+ {
+ securitySchemes = securitySchemes
+ }
};
return spec;
@@ -193,6 +224,13 @@ namespace Emby.Server.Implementations.Services
description = "OK"
};
+ var security = new List<Dictionary<string, string[]>>();
+
+ var apiKeySecurity = new Dictionary<string, string[]>();
+ apiKeySecurity["api_key"] = new string[] { };
+
+ security.Add(apiKeySecurity);
+
result[verb.ToLower()] = new SwaggerMethod
{
summary = info.Summary,
@@ -210,7 +248,9 @@ namespace Emby.Server.Implementations.Services
parameters = new SwaggerParam[] { },
- responses = responses
+ responses = responses,
+
+ security = security.ToArray()
};
}