/// <inheritdoc /> public async Task Process(IHttpResourceRequest request, IHttpResourceResponse response, IEnumerable <string> subPath) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (response == null) { throw new ArgumentNullException(nameof(response)); } if (!request.IsGet()) { response.StatusCode = (int)HttpStatusCode.MethodNotAllowed; response.AddHeader("Allow", "GET"); return; } var metricsSegments = subPath.ToList(); if (!metricsSegments.Any() && request.IsGet()) { await GetMetrics(response); return; } response.StatusCode = 400; }
/// <summary> /// Processes the specified <paramref name="request"/> and updates the supplied /// <paramref name="response"/> /// </summary> /// <param name="request">The HTTP resource request to process</param> /// <param name="response">The HTTP response to update</param> /// <param name="subPath">The portion of the request path that remains after the /// request was routed to this controller</param> /// <returns>Returns a task that completes when the request has been processed and the /// response has been updated</returns> public async Task Process(IHttpResourceRequest request, IHttpResourceResponse response, IEnumerable <string> subPath) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (response == null) { throw new ArgumentNullException(nameof(response)); } var topicSegments = subPath.ToList(); if (!topicSegments.Any() && request.IsGet()) { await GetTopics(response); return; } if (topicSegments.Any()) { var topic = topicSegments.First(); var nestedResource = topicSegments.Skip(1).FirstOrDefault(); if ("subscriber".Equals(nestedResource, StringComparison.OrdinalIgnoreCase)) { await PostOrDeleteSubscriber(request, response, topic); return; } } response.StatusCode = 400; }
/// <inheritdoc /> public async Task Process(IHttpResourceRequest request, IHttpResourceResponse response, IEnumerable <string> subPath) { if (request == null) { throw new ArgumentNullException(nameof(request)); } if (response == null) { throw new ArgumentNullException(nameof(response)); } if (!request.IsGet()) { response.StatusCode = (int)HttpStatusCode.MethodNotAllowed; response.AddHeader("Allow", "GET"); return; } await Get(request, response); }