using DeluxeBackend.Models; using DeluxeBackend.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http.HttpResults; using Microsoft.AspNetCore.Mvc; using static DeluxeBackend.Enums; namespace DeluxeBackend.Controllers.Api { [Route("api/[controller]")] [ApiController] public class CampusCardController : ControllerBase { private readonly IJwtService jwt; private readonly ILiteDbService db; private readonly INotificationService ws; private readonly DiscordBotService bot; public CampusCardController(IJwtService _jwt, ILiteDbService _db, INotificationService _ws, DiscordBotService _bot) { jwt = _jwt; db = _db; ws = _ws; bot = _bot; } [HttpPost("v1/UpdateAndGetSubscription")] [Authorize(Roles = "gameClient")] public async Task UpdateAndGetSubscription() { Account? account = await jwt.GetLogin(User); if (account == null) { return NotFound("User not found in database"); } bool isActive = false; if (account.DiscordId.HasValue) { isActive = await bot.HasUserBoostedGuild(account.DiscordId.Value); } if (isActive) { return Ok(new { CanBuySubscription = false, PlatformAccountSubscribedPlayerId = 0, Subscription = new { CreatedAt = DateTime.MinValue.ToString("O"), ExpirationDate = DateTime.MaxValue.ToString("O"), IsActive = true, IsAutoRenewing = true, Level = 0, ModifiedAt = DateTime.MinValue.ToString("O"), Period = 0, PlatformId = "1", PlatformPurchaseId = "0", PlatformType = (int)PlatformType.RecNet, RecNetPlayerId = account.Id, SubscriptionId = 0 } }); } else { return Ok(new { CanBuySubscription = false, PlatformAccountSubscribedPlayerId = 0, Subscription = (string?)null }); } } } }