Esempio n. 1
0
        public async Task <IActionResult> RedeliverWebhook(string storeId, string invoiceId, string deliveryId)
        {
            var invoice = (await _InvoiceRepository.GetInvoices(new InvoiceQuery()
            {
                InvoiceId = new[] { invoiceId },
                StoreId = new[] { storeId },
                UserId = GetUserId()
            })).FirstOrDefault();

            if (invoice is null)
            {
                return(NotFound());
            }
            var delivery = await _InvoiceRepository.GetWebhookDelivery(invoiceId, deliveryId);

            if (delivery is null)
            {
                return(NotFound());
            }
            var newDeliveryId = await WebhookNotificationManager.Redeliver(deliveryId);

            if (newDeliveryId is null)
            {
                return(NotFound());
            }
            TempData[WellKnownTempData.SuccessMessage] = "Successfully planned a redelivery";
            return(RedirectToAction(nameof(Invoice),
                                    new
            {
                invoiceId
            }));
        }
Esempio n. 2
0
 public InvoiceController(
     IServiceProvider serviceProvider,
     InvoiceRepository invoiceRepository,
     CurrencyNameTable currencyNameTable,
     UserManager <ApplicationUser> userManager,
     RateFetcher rateProvider,
     StoreRepository storeRepository,
     EventAggregator eventAggregator,
     ContentSecurityPolicies csp,
     BTCPayNetworkProvider networkProvider,
     PaymentMethodHandlerDictionary paymentMethodHandlerDictionary,
     ApplicationDbContextFactory dbContextFactory,
     PullPaymentHostedService paymentHostedService,
     WebhookNotificationManager webhookNotificationManager)
 {
     _ServiceProvider   = serviceProvider;
     _CurrencyNameTable = currencyNameTable ?? throw new ArgumentNullException(nameof(currencyNameTable));
     _StoreRepository   = storeRepository ?? throw new ArgumentNullException(nameof(storeRepository));
     _InvoiceRepository = invoiceRepository ?? throw new ArgumentNullException(nameof(invoiceRepository));
     _RateProvider      = rateProvider ?? throw new ArgumentNullException(nameof(rateProvider));
     _UserManager       = userManager;
     _EventAggregator   = eventAggregator;
     _NetworkProvider   = networkProvider;
     _paymentMethodHandlerDictionary = paymentMethodHandlerDictionary;
     _dbContextFactory          = dbContextFactory;
     _paymentHostedService      = paymentHostedService;
     WebhookNotificationManager = webhookNotificationManager;
     _CSP = csp;
 }
Esempio n. 3
0
        public async Task <IActionResult> TestWebhook(string webhookId, TestWebhookViewModel viewModel, CancellationToken cancellationToken)
        {
            var result = await WebhookNotificationManager.TestWebhook(CurrentStore.Id, webhookId, viewModel.Type, cancellationToken);

            if (result.Success)
            {
                TempData[WellKnownTempData.SuccessMessage] = $"{viewModel.Type.ToString()} event delivered successfully! Delivery ID is {result.DeliveryId}";
            }
            else
            {
                TempData[WellKnownTempData.ErrorMessage] = $"{viewModel.Type.ToString()} event could not be delivered. Error message received: {(result.ErrorMessage ?? "unknown")}";
            }

            return(View(nameof(TestWebhook)));
        }
Esempio n. 4
0
 public StoresController(
     IServiceProvider serviceProvider,
     BTCPayServerOptions btcpayServerOptions,
     BTCPayServerEnvironment btcpayEnv,
     StoreRepository repo,
     TokenRepository tokenRepo,
     UserManager <ApplicationUser> userManager,
     AccessTokenController tokenController,
     BTCPayWalletProvider walletProvider,
     BTCPayNetworkProvider networkProvider,
     RateFetcher rateFactory,
     ExplorerClientProvider explorerProvider,
     LanguageService langService,
     PaymentMethodHandlerDictionary paymentMethodHandlerDictionary,
     SettingsRepository settingsRepository,
     IAuthorizationService authorizationService,
     EventAggregator eventAggregator,
     CssThemeManager cssThemeManager,
     AppService appService,
     IWebHostEnvironment webHostEnvironment,
     WebhookNotificationManager webhookNotificationManager,
     IOptions <LightningNetworkOptions> lightningNetworkOptions,
     IDataProtectionProvider dataProtector)
 {
     _RateFactory     = rateFactory;
     _Repo            = repo;
     _TokenRepository = tokenRepo;
     _UserManager     = userManager;
     _LangService     = langService;
     _TokenController = tokenController;
     _WalletProvider  = walletProvider;
     _paymentMethodHandlerDictionary = paymentMethodHandlerDictionary;
     _settingsRepository             = settingsRepository;
     _authorizationService           = authorizationService;
     _CssThemeManager           = cssThemeManager;
     _appService                = appService;
     _webHostEnvironment        = webHostEnvironment;
     _lightningNetworkOptions   = lightningNetworkOptions;
     DataProtector              = dataProtector.CreateProtector("ConfigProtector");
     WebhookNotificationManager = webhookNotificationManager;
     _EventAggregator           = eventAggregator;
     _NetworkProvider           = networkProvider;
     _ExplorerProvider          = explorerProvider;
     _ServiceProvider           = serviceProvider;
     _BtcpayServerOptions       = btcpayServerOptions;
     _BTCPayEnv = btcpayEnv;
 }
Esempio n. 5
0
        public async Task <IActionResult> RedeliverWebhook(string webhookId, string deliveryId)
        {
            var delivery = await _Repo.GetWebhookDelivery(CurrentStore.Id, webhookId, deliveryId);

            if (delivery is null)
            {
                return(NotFound());
            }
            var newDeliveryId = await WebhookNotificationManager.Redeliver(deliveryId);

            if (newDeliveryId is null)
            {
                return(NotFound());
            }
            TempData[WellKnownTempData.SuccessMessage] = "Successfully planned a redelivery";
            return(RedirectToAction(nameof(ModifyWebhook),
                                    new
            {
                storeId = CurrentStore.Id,
                webhookId
            }));
        }
 public StoreWebhooksController(StoreRepository storeRepository, WebhookNotificationManager webhookNotificationManager)
 {
     StoreRepository            = storeRepository;
     WebhookNotificationManager = webhookNotificationManager;
 }