public async Task <IActionResult> GetResources([FromQuery] QueryStringParameters queryStringParametersDto)
        {
            Parameters parameters =
                _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString);
            string?query = _sparqlFactoryService.GetFinalQuery(
                _endpointService.GetEntryResourceQuery(parameters.RouteParameters.Endpoint,
                                                       parameters.RouteParameters.Graph), parameters);

            if (query != null)
            {
                var sparqlResults =
                    await _endpointService.ExecuteSelectSparqlQueryAsync(parameters.RouteParameters.Endpoint,
                                                                         parameters.RouteParameters.Graph, query);

                if (sparqlResults != null)
                {
                    CurieVm curiesVm = _resultFormatterService.FormatSparqlResultToCurieList(sparqlResults);
                    return(Ok(curiesVm));
                }
            }

            return(NotFound(new CustomErrorVm()
            {
                CustomErrorMessage =
                    $"No results were found! Check endpoint configuration at {UrlHelperClass.GetEndpointUrl(Request.GetEncodedUrl())}.",
                GeneratedQuery = query
            }));
        }
        public IActionResult RecursiveRouteRedirect()
        {
            Parameters parameters =
                _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString);

            if (parameters.RouteParameters.Predicate == null)
            {
                return(Redirect(UrlHelperClass.ReduceUrl(Request.GetEncodedUrl(), "resource")));
            }
            return(Redirect(UrlHelperClass.ReduceUrl(Request.GetEncodedUrl(), "predicate")));
        }
        public IActionResult GetGraphsForEndpoint([FromRoute] string endpoint)
        {
            var graphs = _endpointService.GetEndpointGraphs(endpoint);

            if (graphs != null)
            {
                return(Ok(graphs));
            }
            return(NotFound(new CustomErrorVm()
            {
                CustomErrorMessage =
                    $"No graphs found. Check selected endpoint configuration at {UrlHelperClass.GetEndpointUrl(Request.GetEncodedUrl())}"
            }));
        }
        public IActionResult PostEndpoint(EndpointVm endpoint)
        {
            if (_endpointService.AddEndpoint(_mapper.Map <EndpointVm, Endpoint>(endpoint), out var finalEndpoint))
            {
                return(Created(
                           new Uri(UrlHelperClass.CreateEndpointUrl(Request.GetEncodedUrl(), endpoint.EndpointName)),
                           finalEndpoint));
            }

            return(BadRequest(new ValidationErrorVm()
            {
                CustomError = new CustomErrorVm()
                {
                    CustomErrorMessage =
                        $"Given endpoint name is already assigned. Check this endpoint configuration at {UrlHelperClass.CreateEndpointUrl(Request.GetEncodedUrl(), endpoint.EndpointName)}"
                }
            }));
        }
Пример #5
0
        public async Task <IActionResult> DeleteResource()
        {
            Parameters parameters =
                _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString);
            string?query = _sparqlFactoryService.GetFinalDeleteQueryForResource(parameters);

            if (query != null)
            {
                bool successful = await _endpointService.ExecuteUpdateSparqlQueryAsync(
                    parameters.RouteParameters.Endpoint,
                    parameters.RouteParameters.Graph, query);

                if (successful)
                {
                    return(NoContent());
                }
            }

            return(BadRequest(new CustomErrorVm()
            {
                CustomErrorMessage =
                    $"Resource could not have been deleted! Check endpoint configuration at {UrlHelperClass.GetEndpointUrl(Request.GetEncodedUrl())}.",
                GeneratedQuery = query
            }));
        }
        public async Task <IActionResult> PutPredicate(PredicateVm predicateVm)
        {
            Parameters parameters =
                _parametersProcessorService.ProcessParameters(Request.RouteValues, Request.QueryString);
            string?query = _sparqlFactoryService.GetFinalPutQueryForPredicate(parameters, predicateVm);

            if (query != null)
            {
                bool successful = await _endpointService.ExecuteUpdateSparqlQueryAsync(
                    parameters.RouteParameters.Endpoint,
                    parameters.RouteParameters.Graph, query);

                if (successful)
                {
                    return(Created(new Uri(Request.GetEncodedUrl()), predicateVm));
                }
            }

            return(BadRequest(new ValidationErrorVm()
            {
                CustomError = new CustomErrorVm()
                {
                    CustomErrorMessage =
                        $"Predicate could not have been created! Check selected endpoint configuration at {UrlHelperClass.GetEndpointUrl(Request.GetEncodedUrl())}.",
                    GeneratedQuery = query
                }
            }));
        }