Skip to content

Commit

Permalink
Change RawRequestFilters into PreRequestFilters, added them to all Se…
Browse files Browse the repository at this point in the history
…rviceStack Request Handlers
  • Loading branch information
mythz committed Sep 2, 2012
1 parent c2cbe9e commit c152b96
Show file tree
Hide file tree
Showing 11 changed files with 29 additions and 28 deletions.
5 changes: 4 additions & 1 deletion release/copy.bat
@@ -1,7 +1,10 @@
MD latest\ServiceStack
MD latest\ServiceStack.OrmLite

COPY ..\NuGet\ServiceStack\lib\net35\* latest\ServiceStack
COPY ..\NuGet\ServiceStack\lib\net40\* latest\ServiceStack
COPY ..\NuGet\ServiceStack.Common\lib\net35\* latest\ServiceStack
COPY ..\NuGet\ServiceStack.Mvc\lib\net4\* latest\ServiceStack
COPY ..\NuGet\ServiceStack.Mvc\lib\net40\* latest\ServiceStack
COPY ..\NuGet\ServiceStack.Plugins.ProtoBuf\lib\net35\* latest\ServiceStack

COPY ..\..\ServiceStack.Text\NuGet\lib\net35\* latest\ServiceStack
Expand Down
4 changes: 2 additions & 2 deletions src/ServiceStack.ServiceInterface/Testing/BasicAppHost.cs
Expand Up @@ -15,7 +15,7 @@ public class BasicAppHost : IAppHost
public BasicAppHost()
{
this.Container = new Container();
this.RawRequestFilters = new List<Action<IHttpRequest, IHttpResponse>>();
this.PreRequestFilters = new List<Action<IHttpRequest, IHttpResponse>>();
this.RequestFilters = new List<Action<IHttpRequest, IHttpResponse, object>>();
this.ResponseFilters = new List<Action<IHttpRequest, IHttpResponse, object>>();
this.ViewEngines = new List<IViewEngine>();
Expand Down Expand Up @@ -46,7 +46,7 @@ public T TryResolve<T>()

public IContentTypeFilter ContentTypeFilters { get; set; }

public List<Action<IHttpRequest, IHttpResponse>> RawRequestFilters { get; set; }
public List<Action<IHttpRequest, IHttpResponse>> PreRequestFilters { get; set; }

public List<Action<IHttpRequest, IHttpResponse, object>> RequestFilters { get; set; }

Expand Down
4 changes: 2 additions & 2 deletions src/ServiceStack.ServiceInterface/Testing/TestAppHost.cs
Expand Up @@ -31,7 +31,7 @@ public TestAppHost(Funq.Container container, params Assembly[] serviceAssemblies
new ServiceManager(true, serviceAssemblies));

this.ContentTypeFilters = new HttpResponseFilter();
this.RawRequestFilters = new List<Action<IHttpRequest, IHttpResponse>>();
this.PreRequestFilters = new List<Action<IHttpRequest, IHttpResponse>>();
this.RequestFilters = new List<Action<IHttpRequest, IHttpResponse, object>>();
this.ResponseFilters = new List<Action<IHttpRequest, IHttpResponse, object>>();
this.ViewEngines = new List<IViewEngine>();
Expand Down Expand Up @@ -60,7 +60,7 @@ public T TryResolve<T>()

public IContentTypeFilter ContentTypeFilters { get; set; }

public List<Action<IHttpRequest, IHttpResponse>> RawRequestFilters { get; set; }
public List<Action<IHttpRequest, IHttpResponse>> PreRequestFilters { get; set; }

public List<Action<IHttpRequest, IHttpResponse, object>> RequestFilters { get; set; }

Expand Down
2 changes: 1 addition & 1 deletion src/ServiceStack/WebHost.Endpoints/AppHostBase.cs
Expand Up @@ -164,7 +164,7 @@ public IContentTypeFilter ContentTypeFilters
}
}

public List<Action<IHttpRequest, IHttpResponse>> RawRequestFilters
public List<Action<IHttpRequest, IHttpResponse>> PreRequestFilters
{
get
{
Expand Down
2 changes: 1 addition & 1 deletion src/ServiceStack/WebHost.Endpoints/EndpointHost.cs
Expand Up @@ -231,7 +231,7 @@ public static EndpointHostConfig Config
/// and no more processing should be done.
/// </summary>
/// <returns></returns>
public static bool ApplyRawRequestFilters(IHttpRequest httpReq, IHttpResponse httpRes)
public static bool ApplyPreRequestFilters(IHttpRequest httpReq, IHttpResponse httpRes)
{
foreach (var requestFilter in RawRequestFilters)
{
Expand Down
4 changes: 3 additions & 1 deletion src/ServiceStack/WebHost.Endpoints/GenericHandler.cs
Expand Up @@ -55,7 +55,9 @@ public override void ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes,
{
try
{
EndpointHost.Config.AssertFeatures(usesFeature);
if (EndpointHost.ApplyPreRequestFilters(httpReq, httpRes)) return;

EndpointHost.Config.AssertFeatures(usesFeature);

httpReq.ResponseContentType = httpReq.GetQueryStringContentType() ?? this.HandlerContentType;
var callback = httpReq.QueryString["callback"];
Expand Down
2 changes: 1 addition & 1 deletion src/ServiceStack/WebHost.Endpoints/IAppHost.cs
Expand Up @@ -45,7 +45,7 @@ public interface IAppHost : IResolver
/// <summary>
/// Add Request Filters, to be applied before the dto is deserialized
/// </summary>
List<Action<IHttpRequest, IHttpResponse>> RawRequestFilters { get; }
List<Action<IHttpRequest, IHttpResponse>> PreRequestFilters { get; }

/// <summary>
/// Add Request Filters
Expand Down
2 changes: 1 addition & 1 deletion src/ServiceStack/WebHost.Endpoints/RestHandler.cs
Expand Up @@ -44,7 +44,7 @@ public override void ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes,
var responseContentType = EndpointHost.Config.DefaultContentType;
try
{
if (EndpointHost.ApplyRawRequestFilters(httpReq, httpRes)) return;
if (EndpointHost.ApplyPreRequestFilters(httpReq, httpRes)) return;

var restPath = GetRestPath(httpReq.HttpMethod, httpReq.PathInfo);
if (restPath == null)
Expand Down
Expand Up @@ -354,7 +354,7 @@ public IContentTypeFilter ContentTypeFilters
}
}

public List<Action<IHttpRequest, IHttpResponse>> RawRequestFilters
public List<Action<IHttpRequest, IHttpResponse>> PreRequestFilters
{
get
{
Expand Down
28 changes: 12 additions & 16 deletions src/ServiceStack/WebHost.Endpoints/Support/SoapHandler.cs
Expand Up @@ -39,7 +39,7 @@ public Message Send(Message requestMsg)
public Message EmptyResponse(Message requestMsg, Type requestType)
{
var responseType = AssemblyUtils.FindType(requestType.FullName + "Response");
var response = ReflectionExtensions.CreateInstance(responseType ?? typeof(object));
var response = (responseType ?? typeof(object)).CreateInstance();

return requestMsg.Headers.Action == null
? Message.CreateMessage(requestMsg.Version, null, response)
Expand All @@ -60,17 +60,20 @@ protected Message ExecuteMessage(Message requestMsg, EndpointAttributes endpoint
}

var requestType = GetRequestType(requestMsg, requestXml);
try
try
{
var request = DataContractDeserializer.Instance.Parse(requestXml, requestType);

IHttpRequest httpReq = null;
IHttpResponse httpRes = null;

httpReq = HttpContext.Current != null ? new HttpRequestWrapper(requestType.Name, HttpContext.Current.Request) : null;
httpRes = HttpContext.Current != null
? new HttpResponseWrapper(HttpContext.Current.Response)
: null;
var httpReq = HttpContext.Current != null
? new HttpRequestWrapper(requestType.Name, HttpContext.Current.Request)
: null;
var httpRes = HttpContext.Current != null
? new HttpResponseWrapper(HttpContext.Current.Response)
: null;

if (EndpointHost.ApplyPreRequestFilters(httpReq, httpRes))
return EmptyResponse(requestMsg, requestType);

var hasRequestFilters = EndpointHost.RequestFilters.Count > 0
|| FilterAttributeCache.GetRequestFilterAttributes(request.GetType()).Any();

Expand All @@ -81,13 +84,6 @@ protected Message ExecuteMessage(Message requestMsg, EndpointAttributes endpoint

var hasResponseFilters = EndpointHost.ResponseFilters.Count > 0
|| FilterAttributeCache.GetResponseFilterAttributes(response.GetType()).Any();

if (hasResponseFilters && httpRes == null)
{
httpRes = HttpContext.Current != null
? new HttpResponseWrapper(HttpContext.Current.Response)
: null;
}

if (hasResponseFilters && EndpointHost.ApplyResponseFilters(httpReq, httpRes, response))
return EmptyResponse(requestMsg, requestType);
Expand Down
2 changes: 1 addition & 1 deletion tests/ServiceStack.ServiceHost.Tests/Formats/ViewTests.cs
Expand Up @@ -78,7 +78,7 @@ public T TryResolve<T>()

public IContentTypeFilter ContentTypeFilters { get; set; }

public List<Action<IHttpRequest, IHttpResponse>> RawRequestFilters { get; set; }
public List<Action<IHttpRequest, IHttpResponse>> PreRequestFilters { get; set; }

public List<Action<IHttpRequest, IHttpResponse, object>> RequestFilters { get; set; }

Expand Down

0 comments on commit c152b96

Please sign in to comment.