public static IActionResult Status([HttpTrigger( AuthorizationLevel.Function, "GET", Route = "fakeBank/payment/{paymentRequestId}")] HttpRequestMessage request, string paymentRequestId) { var bankApi = new FakeBankApi(); var handler = new GetPaymentHandler(bankApi); try { var paymentRequest = handler.Handle(paymentRequestId); return(new OkObjectResult(paymentRequest)); } catch (NotFoundException) { return(new NotFoundResult()); } }
public static async Task <IActionResult> Status([HttpTrigger( AuthorizationLevel.Function, "POST", Route = "fakeBank/payment/")] HttpRequestMessage request) { // Auth checks would be done here against or at Api Gateway level to ensure // person making request has access to do so for the merchant. var bankApi = new FakeBankApi(); var paymentHistoryRepo = new PaymentHistoryRepo(); var handler = new ProcessPaymentHandler(paymentHistoryRepo, bankApi); try { var paymentRequest = DeserializeRequestFromBody(await request.Content.ReadAsStringAsync()); var validation = new ProcessPaymentValidator().Validate(paymentRequest); if (!validation.IsValid) { return(new BadRequestObjectResult(JsonConvert.SerializeObject(validation.Errors))); } var isCompleted = handler.Handle(paymentRequest); if (isCompleted) { return(new OkObjectResult(paymentRequest)); } return(new BadRequestObjectResult("Payment Request Unsuccessful")); } catch (BadRequestException ex) { return(new BadRequestObjectResult(ex.Message)); } }