feat: include account info in balance response

This commit is contained in:
QiuSW
2026-07-06 15:45:48 +08:00
parent c07ae8dcfc
commit a00ffd8520
5 changed files with 47 additions and 4 deletions
+13
View File
@@ -180,6 +180,7 @@ class BalanceApiTests(TestCase):
username=f"balance-user-{suffix}",
email=f"balance-user-{suffix}@example.com",
password="password",
first_name="主账号",
)
self.api_key, self.raw_key = ApiKey.create_for_user(self.user, name="balance")
self.client = APIClient()
@@ -225,12 +226,24 @@ class BalanceApiTests(TestCase):
self.assertEqual(response.data["user"], self.user.username)
self.assertEqual(response.data["points_balance"], 100)
self.assertEqual(response.data["points_balance"], ledger_sum)
self.assertEqual(
response.data["account"],
{
"username": self.user.username,
"display_name": "主账号",
},
)
self.assertNotIn("email", response.data["account"])
self.assertNotIn("id", response.data["account"])
def test_balance_returns_zero_without_creating_missing_wallet(self):
response = self.client.get(self.url, **self.auth_header())
self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["user"], self.user.username)
self.assertEqual(response.data["points_balance"], 0)
self.assertEqual(response.data["account"]["username"], self.user.username)
self.assertEqual(response.data["account"]["display_name"], "主账号")
self.assertFalse(UserWallet.objects.filter(user=self.user).exists())
def test_balance_does_not_accept_web_session_without_api_key(self):
+7 -1
View File
@@ -109,10 +109,16 @@ class GenerateImageView(ExternalApiView):
class BalanceView(ExternalApiView):
def get(self, request):
balance = get_balance_snapshot(request.user)
username = request.user.get_username()
display_name = request.user.get_full_name() or username
return Response(
{
"user": request.user.get_username(),
"user": username,
"points_balance": balance.points_balance,
"account": {
"username": username,
"display_name": display_name,
},
},
status=status.HTTP_200_OK,
)