diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-03-23 22:45:00 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-03-23 22:45:00 -0400 |
| commit | e2dcddc5ac43846baea0f9b1a0fc62844dd9ee1d (patch) | |
| tree | e3818758a13a107cb28e54bb63ce489366ea50d5 /MediaBrowser.WebDashboard | |
| parent | 521ec4936101d6affaf68a95cd8dee090395e2b6 (diff) | |
made compression and caching available to plugin api endpoints
Diffstat (limited to 'MediaBrowser.WebDashboard')
| -rw-r--r-- | MediaBrowser.WebDashboard/Api/DashboardService.cs | 40 | ||||
| -rw-r--r-- | MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj | 24 | ||||
| -rw-r--r-- | MediaBrowser.WebDashboard/packages.config | 3 |
3 files changed, 31 insertions, 36 deletions
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs index 0c2b8a376c..476d16c5ef 100644 --- a/MediaBrowser.WebDashboard/Api/DashboardService.cs +++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs @@ -1,5 +1,4 @@ -using System.Diagnostics; -using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Extensions; using MediaBrowser.Common.IO; using MediaBrowser.Common.Net; using MediaBrowser.Common.ScheduledTasks; @@ -9,11 +8,11 @@ using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Plugins; using MediaBrowser.Model.Logging; using MediaBrowser.Model.Tasks; -using MediaBrowser.Server.Implementations.HttpServer; using ServiceStack.ServiceHost; using System; using System.Collections.Generic; using System.ComponentModel.Composition; +using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; @@ -27,6 +26,7 @@ namespace MediaBrowser.WebDashboard.Api /// Class GetDashboardConfigurationPages /// </summary> [Route("/dashboard/ConfigurationPages", "GET")] + [Restrict(VisibilityTo = EndpointAttributes.None)] public class GetDashboardConfigurationPages : IReturn<List<ConfigurationPageInfo>> { /// <summary> @@ -40,6 +40,7 @@ namespace MediaBrowser.WebDashboard.Api /// Class GetDashboardConfigurationPage /// </summary> [Route("/dashboard/ConfigurationPage", "GET")] + [Restrict(VisibilityTo = EndpointAttributes.None)] public class GetDashboardConfigurationPage { /// <summary> @@ -53,6 +54,7 @@ namespace MediaBrowser.WebDashboard.Api /// Class GetDashboardResource /// </summary> [Route("/dashboard/{ResourceName*}", "GET")] + [Restrict(VisibilityTo = EndpointAttributes.None)] public class GetDashboardResource { /// <summary> @@ -71,6 +73,7 @@ namespace MediaBrowser.WebDashboard.Api /// Class GetDashboardInfo /// </summary> [Route("/dashboard/dashboardInfo", "GET")] + [Restrict(VisibilityTo = EndpointAttributes.None)] public class GetDashboardInfo : IReturn<DashboardInfo> { } @@ -79,9 +82,27 @@ namespace MediaBrowser.WebDashboard.Api /// Class DashboardService /// </summary> [Export(typeof(IRestfulService))] - public class DashboardService : BaseRestService + public class DashboardService : IRestfulService, IHasResultFactory { /// <summary> + /// Gets or sets the logger. + /// </summary> + /// <value>The logger.</value> + public ILogger Logger { get; set; } + + /// <summary> + /// Gets or sets the HTTP result factory. + /// </summary> + /// <value>The HTTP result factory.</value> + public IHttpResultFactory ResultFactory { get; set; } + + /// <summary> + /// Gets or sets the request context. + /// </summary> + /// <value>The request context.</value> + public IRequestContext RequestContext { get; set; } + + /// <summary> /// Gets or sets the task manager. /// </summary> /// <value>The task manager.</value> @@ -172,7 +193,7 @@ namespace MediaBrowser.WebDashboard.Api { var page = ServerEntryPoint.Instance.PluginConfigurationPages.First(p => p.Name.Equals(request.Name, StringComparison.OrdinalIgnoreCase)); - return ToStaticResult(page.Plugin.Version.ToString().GetMD5(), page.Plugin.AssemblyDateLastModified, null, MimeTypes.GetMimeType("page.html"), () => ModifyHtml(page.GetHtmlStream())); + return ResultFactory.GetStaticResult(RequestContext, page.Plugin.Version.ToString().GetMD5(), page.Plugin.AssemblyDateLastModified, null, MimeTypes.GetMimeType("page.html"), () => ModifyHtml(page.GetHtmlStream())); } /// <summary> @@ -189,7 +210,7 @@ namespace MediaBrowser.WebDashboard.Api pages = pages.Where(p => p.ConfigurationPageType == request.PageType.Value); } - return ToOptimizedResult(pages.Select(p => new ConfigurationPageInfo(p)).ToList()); + return ResultFactory.GetOptimizedResult(RequestContext, pages.Select(p => new ConfigurationPageInfo(p)).ToList()); } /// <summary> @@ -207,8 +228,7 @@ namespace MediaBrowser.WebDashboard.Api // But always cache images to simulate production if (!_serverConfigurationManager.Configuration.EnableDashboardResponseCaching && !contentType.StartsWith("image/", StringComparison.OrdinalIgnoreCase)) { - Response.ContentType = contentType; - return GetResourceStream(path).Result; + return ResultFactory.GetResult(GetResourceStream(path).Result, contentType); } TimeSpan? cacheDuration = null; @@ -224,7 +244,7 @@ namespace MediaBrowser.WebDashboard.Api var cacheKey = (assembly.Version + path).GetMD5(); - return ToStaticResult(cacheKey, null, cacheDuration, contentType, () => GetResourceStream(path)); + return ResultFactory.GetStaticResult(RequestContext, cacheKey, null, cacheDuration, contentType, () => GetResourceStream(path)); } /// <summary> @@ -385,6 +405,7 @@ namespace MediaBrowser.WebDashboard.Api var files = new[] { "http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css", + "http://vjs.zencdn.net/c/video-js.css", "thirdparty/jqm-icon-pack-3.0/font-awesome/jqm-icon-pack-3.0.0-fa.css", "css/site.css" + versionString }; @@ -407,6 +428,7 @@ namespace MediaBrowser.WebDashboard.Api { "http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js", "http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js", + "http://vjs.zencdn.net/c/video.js", "scripts/all.js" + versionString }; diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 6fcb1d2e63..843fd7a723 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -35,10 +35,6 @@ <RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
- <Reference Include="ServiceStack, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.3.9.42\lib\net35\ServiceStack.dll</HintPath>
- </Reference>
<Reference Include="ServiceStack.Common, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ServiceStack.Common.3.9.42\lib\net35\ServiceStack.Common.dll</HintPath>
@@ -47,22 +43,6 @@ <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ServiceStack.Common.3.9.42\lib\net35\ServiceStack.Interfaces.dll</HintPath>
</Reference>
- <Reference Include="ServiceStack.OrmLite, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.42\lib\ServiceStack.OrmLite.dll</HintPath>
- </Reference>
- <Reference Include="ServiceStack.OrmLite.SqlServer, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.42\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
- </Reference>
- <Reference Include="ServiceStack.Redis, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.Redis.3.9.42\lib\net35\ServiceStack.Redis.dll</HintPath>
- </Reference>
- <Reference Include="ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.3.9.42\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
- </Reference>
<Reference Include="ServiceStack.Text, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ServiceStack.Text.3.9.42\lib\net35\ServiceStack.Text.dll</HintPath>
@@ -101,10 +81,6 @@ <Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
<Name>MediaBrowser.Model</Name>
</ProjectReference>
- <ProjectReference Include="..\MediaBrowser.Server.Implementations\MediaBrowser.Server.Implementations.csproj">
- <Project>{2e781478-814d-4a48-9d80-bff206441a65}</Project>
- <Name>MediaBrowser.Server.Implementations</Name>
- </ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="dashboard-ui\index.html">
diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config index c9f456705f..4e1ee3bff0 100644 --- a/MediaBrowser.WebDashboard/packages.config +++ b/MediaBrowser.WebDashboard/packages.config @@ -1,9 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <packages> <package id="MediaBrowser.ApiClient.Javascript" version="3.0.50" targetFramework="net45" /> - <package id="ServiceStack" version="3.9.42" targetFramework="net45" /> <package id="ServiceStack.Common" version="3.9.42" targetFramework="net45" /> - <package id="ServiceStack.OrmLite.SqlServer" version="3.9.42" targetFramework="net45" /> - <package id="ServiceStack.Redis" version="3.9.42" targetFramework="net45" /> <package id="ServiceStack.Text" version="3.9.42" targetFramework="net45" /> </packages>
\ No newline at end of file |
