public virtual async Task <IActionResult> CreateInvoice(string cryptoCode, CreateLightningInvoiceRequest request) { var lightningClient = await GetLightningClient(cryptoCode, false); if (lightningClient == null) { return(NotFound()); } if (request.Amount < LightMoney.Zero) { ModelState.AddModelError(nameof(request.Amount), "Amount should be more or equals to 0"); } if (request.Expiry <= TimeSpan.Zero) { ModelState.AddModelError(nameof(request.Expiry), "Expiry should be more than 0"); } if (!ModelState.IsValid) { return(this.CreateValidationError(ModelState)); } var invoice = await lightningClient.CreateInvoice( new CreateInvoiceParams(request.Amount, request.Description, request.Expiry) { PrivateRouteHints = request.PrivateRouteHints }, CancellationToken.None); return(Ok(ToModel(invoice))); }
public virtual async Task <IActionResult> CreateInvoice(string cryptoCode, CreateLightningInvoiceRequest request) { var lightningClient = await GetLightningClient(cryptoCode, false); if (lightningClient == null) { return(NotFound()); } if (CheckValidation(out var errorActionResult)) { return(errorActionResult); } try { var invoice = await lightningClient.CreateInvoice( new CreateInvoiceParams(request.Amount, request.Description, request.Expiry) { PrivateRouteHints = request.PrivateRouteHints }, CancellationToken.None); return(Ok(ToModel(invoice))); } catch (Exception e) { ModelState.AddModelError(string.Empty, e.Message); return(BadRequest(new ValidationProblemDetails(ModelState))); } }
public virtual async Task<LightningInvoiceData> CreateLightningInvoice(string storeId, string cryptoCode, CreateLightningInvoiceRequest request, CancellationToken token = default) { if (request == null) throw new ArgumentNullException(nameof(request)); var response = await _httpClient.SendAsync( CreateHttpRequest($"api/v1/stores/{storeId}/lightning/{cryptoCode}/invoices", bodyPayload: request, method: HttpMethod.Post), token); return await HandleResponse<LightningInvoiceData>(response); }
public override Task <IActionResult> CreateInvoice(string cryptoCode, CreateLightningInvoiceRequest request) { return(base.CreateInvoice(cryptoCode, request)); }
public override Task <IActionResult> CreateInvoice(string cryptoCode, CreateLightningInvoiceRequest request, CancellationToken cancellationToken = default) { return(base.CreateInvoice(cryptoCode, request, cancellationToken)); }
public async Task <LightningInvoiceData> CreateLightningInvoice(string bitcoinCode, CreateLightningInvoiceRequest request, CancellationToken token = default) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var response = await _httpClient.SendAsync( CreateHttpRequest($"api/v1/server/lightning/{bitcoinCode}/invoices", bodyPayload : request, method : HttpMethod.Post), token); return(await HandleResponse <LightningInvoiceData>(response)); }