internal static Response ToResponse(
     IObjectResponse objectResponse,
     Request request,
     MediaTypeMapper mediaTypeMapper,
     IErrorHandler errorHandler,
     ILogger logger)
 => Success.Of <Exception, Response>(objectResponse.ResponseFrom(request, mediaTypeMapper))
 .Resolve(
     ex => ResourceErrorProcessor.ResourceHandlerError(errorHandler, logger, ex),
     response => response);
 public RequestHandler5 <T, R, U, I, J> Body <J>(MediaTypeMapper mediaTypeMapper)
 => new RequestHandler5 <T, R, U, I, J>(
     Method,
     Path,
     ResolverParam1,
     ResolverParam2,
     ResolverParam3,
     ResolverParam4,
     ParameterResolver.Body <J>(mediaTypeMapper),
     ErrorHandler,
     mediaTypeMapper);
 public RequestHandler2 <T, R> Body <R>(MediaTypeMapper mediaTypeMapper)
 {
     MediaTypeMapper = mediaTypeMapper;
     return(new RequestHandler2 <T, R>(
                Method,
                Path,
                Resolver,
                ParameterResolver.Body <R>(mediaTypeMapper),
                ErrorHandler,
                mediaTypeMapper));
 }
Exemple #4
0
        public Response ResponseFrom(Request request, MediaTypeMapper mapper)
        {
            var acceptedMediaTypes        = request.HeaderValueOr(RequestHeader.Accept, DefaultMediaType.ToString());
            var responseMediaTypeSelector = new ResponseMediaTypeSelector(acceptedMediaTypes);
            var responseContentMediaType  = responseMediaTypeSelector.SelectType(mapper.MappedMediaTypes);
            var bodyContent = mapper.From(_entity, responseContentMediaType);
            var body        = Body.From(bodyContent);

            _headers.Add(ResponseHeader.Of(ResponseHeader.ContentType, responseContentMediaType.ToString()));

            return(Response.Of(_version, _status, _headers, body));
        }
 internal RequestHandler1(
     Method method,
     string path,
     ParameterResolver <T> resolver,
     IErrorHandler errorHandler,
     MediaTypeMapper mediaTypeMapper)
     : base(method, path, new List <IParameterResolver> {
     resolver
 }, errorHandler, mediaTypeMapper)
 {
     Resolver = resolver;
 }
Exemple #6
0
 public RequestHandler3 <T, R, U> Body <U>(MediaTypeMapper mediaTypeMapper)
 {
     MediaTypeMapper = mediaTypeMapper;
     return(new RequestHandler3 <T, R, U>(
                Method,
                Path,
                ResolverParam1,
                ResolverParam2,
                ParameterResolver.Body <U>(mediaTypeMapper),
                ErrorHandler,
                MediaTypeMapper));
 }
 internal RequestHandler(
     Method method,
     string path,
     IList <IParameterResolver> parameterResolvers,
     IErrorHandler errorHandler,
     MediaTypeMapper mediaTypeMapper)
 {
     Method          = method;
     Path            = path;
     ActionSignature = GenerateActionSignature(parameterResolvers);
     ErrorHandler    = errorHandler;
     MediaTypeMapper = mediaTypeMapper;
 }
Exemple #8
0
 internal RequestHandler2(
     Method method,
     string path,
     ParameterResolver <T> resolverParam1,
     ParameterResolver <R> resolverParam2,
     IErrorHandler errorHandler,
     MediaTypeMapper mediaTypeMapper)
     : base(method, path, new List <IParameterResolver> {
     resolverParam1, resolverParam2
 }, errorHandler, mediaTypeMapper)
 {
     ResolverParam1 = resolverParam1;
     ResolverParam2 = resolverParam2;
 }
 internal RequestHandler(
     Method method,
     string path,
     IList <IParameterResolver> parameterResolvers,
     IErrorHandler errorHandler,
     MediaTypeMapper mediaTypeMapper)
 {
     Method           = method;
     Path             = path;
     ActionSignature  = GenerateActionSignature(parameterResolvers);
     ContentSignature = DetectRequestBodyType(parameterResolvers).Map(p => p?.Name !).OrElse(null !);
     BodyType         = DetectRequestBodyType(parameterResolvers).OrElse(null !);
     ErrorHandler     = errorHandler;
     MediaTypeMapper  = mediaTypeMapper;
 }
 internal static ICompletes <Response> ExecuteRequest(
     Request request,
     MediaTypeMapper mediaTypeMapper,
     Func <ICompletes <IObjectResponse> > executeAction,
     IErrorHandler errorHandler,
     ILogger logger)
 {
     try
     {
         return(executeAction.Invoke()
                .AndThen(objectResponse => ToResponse(objectResponse, request, mediaTypeMapper, errorHandler, logger)));
     }
     catch (Exception ex)
     {
         return(Completes.WithFailure(ResourceErrorProcessor.ResourceHandlerError(errorHandler, logger, ex)));
     }
 }
Exemple #11
0
 internal RequestHandler5(
     Method method,
     string path,
     ParameterResolver <T> resolverParam1,
     ParameterResolver <R> resolverParam2,
     ParameterResolver <U> resolverParam3,
     ParameterResolver <I> resolverParam4,
     ParameterResolver <J> resolverParam5,
     IErrorHandler errorHandler,
     MediaTypeMapper mediaTypeMapper)
     : base(method, path, new List <IParameterResolver> {
     resolverParam1, resolverParam2, resolverParam3, resolverParam4, resolverParam5
 }, errorHandler, mediaTypeMapper)
 {
     ResolverParam1 = resolverParam1;
     ResolverParam2 = resolverParam2;
     ResolverParam3 = resolverParam3;
     ResolverParam4 = resolverParam4;
     ResolverParam5 = resolverParam5;
 }
Exemple #12
0
 public RequestHandler0?Mapper(MediaTypeMapper mediaTypeMapper)
 {
     MediaTypeMapper = mediaTypeMapper;
     return(this);
 }