Beispiel #1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = "otp/send")] HttpRequest req)
        {
            _logger.LogInformation($"{nameof(OtpSendApi)} processed a request.");
            try
            {
                var request = await req.ParseAndThrow <OtpSendRequest>();

                // validation
                var validationResult = await _validation.ValidateAsync(req, request.User);

                if (!validationResult.IsValid)
                {
                    return(validationResult.ErrorActionResult);
                }

                await _otpService.SendAsync(request);

                return(new OkResult());
            }
            catch (ArgumentException argumentException)
            {
                return(new BadRequestObjectResult(argumentException.Message));
            }
            catch (UnauthorizedAccessException unauthorizedAccessException)
            {
                return(new NotFoundObjectResult(unauthorizedAccessException.Message));
            }
            catch (Exception e)
            {
                _logger.LogError(e, "OTPSendError");
                return(new InternalServerErrorResult());
            }
        }