Esempio n. 1
0
        public async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = "otp/validate")] HttpRequest req)
        {
            _logger.LogInformation($"{nameof(OtpSendApi)} processed a request.");

            try
            {
                var request = await req.ParseAndThrow <OtpValidateRequest>();

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

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

                var validOtp = await _otpService.ValidateAsync(request);

                return(new OkObjectResult(new { valid = validOtp }));
            }
            catch (ArgumentException argumentException)
            {
                return(new BadRequestObjectResult(argumentException.Message));
            }
            catch (UnauthorizedAccessException unauthorizedAccessException)
            {
                return(new NotFoundObjectResult(unauthorizedAccessException.Message));
            }
            catch (Exception exception)
            {
                Console.Write(exception);
                return(new InternalServerErrorResult());
            }
        }