public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, HttpMethod.GET, HttpMethod.POST, Route = "events")] HttpRequest request, [Table("Events", Connection = "ConnectionStrings:StorageConnectionString")] CloudTable eventsTable, ILogger logger) { await eventsTable.CreateIfNotExistsAsync(); if (request.AuthenticateRequest(out var loginUserId, out var loginUserEmail)) { if (request.Method == HttpMethod.POST) { var newEventRequest = await request.DeserializeRequestAsync <NewEventDto>(); return(await new CreateEventHandler(newEventRequest, eventsTable, loginUserEmail, loginUserId, logger).ProcessAsync()); } if (request.Method == HttpMethod.GET) { var listEventsRequest = new ListEventsDto { Skip = request.QueryParam("skip", 0), Limit = request.QueryParam("limit", 10), Date = request.QueryParam("date", (DateTime?)null) }; return(await new ListEventsHandler(listEventsRequest, eventsTable, loginUserEmail).ProcessAsync()); } } logger.LogWarning("Unauthorized Request to create-event"); return(new UnauthorizedResult()); }
public ListEvents( ListEventsDto listEventsRequest, CloudTable eventsTable, string loginUserEmail) { _listEventsRequest = listEventsRequest; _loginUserEmail = loginUserEmail; _eventsTable = eventsTable; }