public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, ILogger log) { IEnumerable <Venue> results = null; HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError); try { // Get passed argument (from query if present, if from JSON posted in body if not) log.LogInformation($"GetVenuesByUKPRNAndPostCode starting"); string UKPRN = req.RequestUri.ParseQueryString()["UKPRN"]; //?.ToString() ?? (await (dynamic)req.Content.ReadAsAsync<object>())?.UKPRN; string PostCode = req.RequestUri.ParseQueryString()["PostCode"]; //?.ToString() ?? (await (dynamic)req.Content.ReadAsAsync<object>())?.PostCode; if (UKPRN == null) { response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing UKPRN argument")); } else if (PostCode == null) { response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing PostCode argument")); } else if (!int.TryParse(UKPRN, out int parsedUKPRN)) { response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Invalid UKPRN argument")); } else { PostCode = PostCode.Replace(" ", string.Empty).Trim().ToLower(); // Get data results = new VenueStorage().GetByPRN(parsedUKPRN, log) .Where(p => p.POSTCODE.Replace(" ", string.Empty).Trim().ToLower() == PostCode); // Return results response = req.CreateResponse(results.Any() ? HttpStatusCode.OK : HttpStatusCode.NoContent); response.Content = new StringContent(JsonConvert.SerializeObject(results), Encoding.UTF8, "application/json"); } } catch (Exception ex) { throw ex; } return(response); }
public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, ILogger log) { Venue v = null; HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError); try { // Get passed argument (from query if present, if from JSON posted in body if not) log.LogInformation($"GetVenueByVenueId starting"); string venueId = req.RequestUri.ParseQueryString()["venueId"]?.ToString() ?? (await(dynamic) req.Content.ReadAsAsync <object>())?.venueId; if (string.IsNullOrEmpty(venueId)) { log.LogInformation($"GetVenueByVenueId has missing venueId argument"); response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing venueId argument")); } else if (!int.TryParse(venueId, out int parsedVenueId)) { log.LogInformation($"GetVenueByVenueId has invalid venueId argument"); response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Invalid venueId argument")); } else { // Get data v = new VenueStorage().GetByVenueId(parsedVenueId, log); log.LogInformation($"GetVenueByVenueId returning { v?.VENUE_NAME ?? "no results"}"); // Return results response = req.CreateResponse(v == null ? HttpStatusCode.NoContent : HttpStatusCode.OK); response.Content = new StringContent(JsonConvert.SerializeObject(v), Encoding.UTF8, "application/json"); } } catch (Exception ex) { throw ex; } return(response); }
public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequestMessage req, ILogger log) { Provider provider = await req.Content.ReadAsAsync <Provider>(); HttpResponseMessage response = req.CreateResponse(HttpStatusCode.InternalServerError); try { // Get passed argument from JSON posted in body if not) log.LogInformation($"UpdateProviderDetails starting"); if (provider.id == null || provider.id == Guid.Empty) { response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage("Missing or empty id argument")); } else { Document result = await new ProviderStorage().UpdateFullDocAsync(provider, log); if (result == null) { response = req.CreateResponse(HttpStatusCode.BadRequest, ResponseHelper.ErrorMessage($"Cannot update document with id {provider?.id}")); } else { response = req.CreateResponse(HttpStatusCode.OK); } } } catch (Exception ex) { throw ex; } return(response); }