From d065c6897e52726eb519a52742e17d2c2e95c284 Mon Sep 17 00:00:00 2001 From: Dmitrii Date: Mon, 6 Jul 2026 03:53:31 +0300 Subject: [PATCH] Add balance handling to card transactions and user accounts Signed-off-by: Dmitrii Took 6 minutes --- .../Controllers/v1/AuthController.cs | 13 +++++++++---- .../Controllers/v1/TransactionsController.cs | 16 +++++++++++----- .../Persistent/Models/Users/Card.cs | 2 ++ .../tech/spmega/client/ui/GpsHudRenderer.java | 3 ++- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/backend/SpMega.Backend/Controllers/v1/AuthController.cs b/backend/SpMega.Backend/Controllers/v1/AuthController.cs index a3d33ec..2a3ba97 100644 --- a/backend/SpMega.Backend/Controllers/v1/AuthController.cs +++ b/backend/SpMega.Backend/Controllers/v1/AuthController.cs @@ -2,6 +2,7 @@ using System.Net; using System.Net.Http.Headers; using System.Text; using System.Text.Json; +using System.Text.Json.Nodes; using System.Text.Json.Serialization; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -109,15 +110,17 @@ public class AuthController(AppDbContext dbContext, TokenService tokenService, I string Base64BearerToken = Convert.ToBase64String(Encoding.UTF8.GetBytes(BearerToken)); var resp = await SendRequest("/accounts/me", new("Bearer", Base64BearerToken)); var me = JsonSerializer.Deserialize(resp); - Console.WriteLine(resp); var user = ((User)HttpContext.Items["@me"]); - Console.WriteLine(me.id); - Console.WriteLine(Guid.Parse(me.minecraftUUID)); - Console.WriteLine(user.Id.ToString()); + if (user == null || user.Id != Guid.Parse(me.minecraftUUID)) { throw new Exception("Its not ur card"); } + + var balanceResp = await SendRequest("/public/card", new("Bearer", Base64BearerToken)); + var balance = (int?)JsonNode.Parse(balanceResp)?["balance"]; + + var card = me.cards.First(k => k.id == body.id); var existingCard = user.Cards.FirstOrDefault(k => k.Id.ToString() == card.id); @@ -126,6 +129,7 @@ public class AuthController(AppDbContext dbContext, TokenService tokenService, I { Id = Guid.Parse(card.id), Name = card.name, + Balance = balance ?? -1, SpworldsID = card.number, Token = Base64BearerToken, CreatedAt = DateTime.UtcNow, @@ -136,6 +140,7 @@ public class AuthController(AppDbContext dbContext, TokenService tokenService, I existingCard.Name = card.name; existingCard.SpworldsID = card.number; existingCard.Token = Base64BearerToken; + existingCard.Balance = balance ?? -1; existingCard.UpdatedAt = DateTime.UtcNow; } diff --git a/backend/SpMega.Backend/Controllers/v1/TransactionsController.cs b/backend/SpMega.Backend/Controllers/v1/TransactionsController.cs index 2dc2445..8280036 100644 --- a/backend/SpMega.Backend/Controllers/v1/TransactionsController.cs +++ b/backend/SpMega.Backend/Controllers/v1/TransactionsController.cs @@ -70,6 +70,11 @@ public class TransactionsController(AppDbContext context, ILogger response = client.send(request, HttpResponse.BodyHandlers.ofString());