private async Task <IActionResult> UpdateRequestState(
            int id,
            AbsenceRequestState newState
            )
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var request = await _repo.Find(id);

                if (request == null)
                {
                    return(NotFound());
                }

                if (request.State != AbsenceRequestState.Requested)
                {
                    return(BadRequest(ModelState));
                }

                request.State = newState;
                await _repo.Save();

                if (newState == AbsenceRequestState.Approved)
                {
                    GoogleCalendar.AddToCalendar(request.FromDate, request.ToDate);
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!await AbsenceRequestExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }