Files
Readarr/src/Readarr.Http/Extensions/Pipelines/CacheHeaderPipeline.cs
T
Qstick e30c078962 Remove unnecessary usings
Signed-off-by: Robin Dadswell <robin@dadswell.email>
2021-01-28 23:43:19 -05:00

41 lines
1.0 KiB
C#

using Nancy;
using Nancy.Bootstrapper;
using Readarr.Http.Frontend;
namespace Readarr.Http.Extensions.Pipelines
{
public class CacheHeaderPipeline : IRegisterNancyPipeline
{
private readonly ICacheableSpecification _cacheableSpecification;
public CacheHeaderPipeline(ICacheableSpecification cacheableSpecification)
{
_cacheableSpecification = cacheableSpecification;
}
public int Order => 0;
public void Register(IPipelines pipelines)
{
pipelines.AfterRequest.AddItemToStartOfPipeline(Handle);
}
private void Handle(NancyContext context)
{
if (context.Request.Method == "OPTIONS")
{
return;
}
if (_cacheableSpecification.IsCacheable(context))
{
context.Response.Headers.EnableCache();
}
else
{
context.Response.Headers.DisableCache();
}
}
}
}