Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
 public ListEvents(
     ListEventsDto listEventsRequest,
     CloudTable eventsTable,
     string loginUserEmail)
 {
     _listEventsRequest = listEventsRequest;
     _loginUserEmail    = loginUserEmail;
     _eventsTable       = eventsTable;
 }