public virtual SillyProxyResponse Handle(SillyProxyRequest input, ILambdaContext lambdaContext) { try { if (input == null) { throw new SillyException(SillyHttpStatusCode.ServerError, "Request aborted upon delivery."); } OriginalRequest = input; HttpMethod = StringToHttpMethod(input.httpMethod); Path = input.path; ISillyView sillyContent = Dispatch(this); if (sillyContent == null) { throw new SillyException(SillyHttpStatusCode.NotFound, "The path " + input.path + " does not exist."); } SillyProxyResponse response = new SillyProxyResponse(); response.body = sillyContent.Content; return(response); } catch (SillyException sillyEx) { return(buildErrorResponse(sillyEx)); } catch (Exception Ex) { return(buildErrorResponse(SillyHttpStatusCode.ServerError, Ex.Message + "\n" + Ex.StackTrace)); } }
private SillyProxyResponse buildErrorResponse(SillyHttpStatusCode statusCode, string details) { SillyProxyResponse errorResponse = new SillyProxyResponse(statusCode); errorResponse.body = "<h1>Server ERROR</h1><h3>" + errorResponse.StatusCodeToString() + "</h3>"; errorResponse.body += "<p>" + details + "</p>"; return(errorResponse); }