Files
server/src/Api/Controllers/MiscController.cs

72 lines
2.0 KiB
C#
Raw Normal View History

using System;
using Microsoft.AspNetCore.Mvc;
using Bit.Core.Models.Api;
2019-02-21 22:43:37 -05:00
using System.Threading.Tasks;
using Bit.Core.Utilities;
using Microsoft.AspNetCore.Authorization;
using Bit.Core;
2019-08-09 14:06:07 -04:00
using Stripe;
namespace Bit.Api.Controllers
{
public class MiscController : Controller
{
2019-02-21 22:43:37 -05:00
private readonly BitPayClient _bitPayClient;
private readonly GlobalSettings _globalSettings;
2019-02-21 22:43:37 -05:00
2019-03-19 23:32:54 -04:00
public MiscController(
BitPayClient bitPayClient,
GlobalSettings globalSettings)
2019-02-21 22:43:37 -05:00
{
_bitPayClient = bitPayClient;
_globalSettings = globalSettings;
2019-02-21 22:43:37 -05:00
}
[HttpGet("~/alive")]
2017-10-06 15:30:54 -04:00
[HttpGet("~/now")]
public DateTime Get()
{
return DateTime.UtcNow;
}
[HttpGet("~/version")]
public VersionResponseModel Version()
{
return new VersionResponseModel();
}
2018-05-21 21:18:19 -04:00
[HttpGet("~/ip")]
public JsonResult Ip()
{
return new JsonResult(new
{
Ip = HttpContext.Connection?.RemoteIpAddress?.ToString(),
Headers = HttpContext.Request?.Headers,
});
}
2019-02-21 22:43:37 -05:00
[Authorize("Application")]
[HttpPost("~/bitpay-invoice")]
[SelfHosted(NotSelfHostedOnly = true)]
public async Task<string> PostBitPayInvoice([FromBody]BitPayInvoiceRequestModel model)
{
var invoice = await _bitPayClient.CreateInvoiceAsync(model.ToBitpayClientInvoice(_globalSettings));
2019-02-21 22:43:37 -05:00
return invoice.Url;
}
2019-08-09 14:06:07 -04:00
[Authorize("Application")]
[HttpPost("~/setup-payment")]
[SelfHosted(NotSelfHostedOnly = true)]
public async Task<string> PostSetupPayment()
{
var options = new SetupIntentCreateOptions
{
Usage = "off_session"
};
var service = new SetupIntentService();
var setupIntent = await service.CreateAsync(options);
return setupIntent.ClientSecret;
}
}
}