using fubon_api.Models; using FubonNeo.Sdk; using Microsoft.AspNetCore.Mvc; namespace fubon_api.Controllers; [ApiController] [Route("api/[controller]")] public class FubonSdkController : ControllerBase { private readonly FubonSDK _sdk; private static Account account; private readonly ILogger _logger; public FubonSdkController(ILogger logger, FubonSDK sdk) { _sdk = sdk; _logger = logger; } [HttpPost("Login")] public LoginResponse Login([FromBody] LoginRequest request) { if (request == null) { throw new ArgumentException("Invalid login request."); } var result = _sdk.Login(request.Id, request.Password, "Your Cert Path", "Your Cert Password"); account = result.data[0]; return result; } [HttpPost("PlaceOrder")] public bool PlaceOrder([FromBody] OrderRequest request) { var order = new Order( request.GetBuySellEnum(), request.Symbol, request.Price, request.Quantity, request.GetMarketTypeEnum(), request.GetPriceType(), request.GetTimeInForceEnum(), request.GetOrderTypeEnum(), null ); _sdk.Stock.PlaceOrder(account, order); Console.WriteLine(request.ToString()); return true; } [HttpGet("OrderResult")] public IEnumerable GetOrderResult() { var orderResults = _sdk.Stock.GetOrderResults(account); return orderResults.data; } [HttpPost("ModifyOrder")] public bool ModifyOrder() { /* todo : input 1. orderResult 2. Type: price, quantity modify price method modify quantity method */ return true; } }