Example #1
0
        protected override async Task <TypedActionHandlerResult <BtcPayInvoice> > Execute(Dictionary <string, object> data, RecipeAction recipeAction,
                                                                                          GetInvoiceData actionData)
        {
            var externalService = await recipeAction.GetExternalService();

            var service   = new BtcPayServerService(externalService);
            var invoiceId = InterpolateString(actionData.InvoiceId, data);
            var client    = service.ConstructClient();
            var invoice   = await client.GetInvoiceAsync <BtcPayInvoice>(invoiceId);

            return(new BtcPayServerActionHandlerResult <BtcPayInvoice>()
            {
                Executed = true,
                TypedData = invoice,
                Result = $"fetched invoice {invoiceId}"
            });
        }
Example #2
0
        protected override async Task <TypedActionHandlerResult <List <InvoicePaymentInfo> > > Execute(Dictionary <string, object> data, RecipeAction recipeAction,
                                                                                                       GetPaymentsFromInvoiceData actionData)
        {
            var externalService = await recipeAction.GetExternalService();

            var service   = new BtcPayServerService(externalService);
            var invoiceId = InterpolateString(actionData.InvoiceId, data);
            var client    = service.ConstructClient();
            var invoice   = await client.GetInvoiceAsync <BtcPayInvoice>(invoiceId);

            var payments = invoice.CryptoInfo.SingleOrDefault(info => info.CryptoCode.Equals(actionData.CryptoCode))?
                           .Payments.Where(x =>
                                           string.IsNullOrEmpty(actionData.PaymentType) ||
                                           x.PaymentType.Equals(actionData.PaymentType))
                           .ToList() ?? new List <InvoicePaymentInfo>();

            return(new BtcPayServerActionHandlerResult <List <InvoicePaymentInfo> >()
            {
                Executed = true,
                TypedData = payments,
                Result = $"found {payments.Count} {actionData.CryptoCode} payments in invoice {invoiceId}"
            });
        }