feat(profile): ProfileController + DTOs + integration tests

Add /profile/index endpoint that returns user_rank_match_total_win (stubbed 0)
and user_class_list built from viewer Classes + owned LeaderSkins. Six NUnit
integration tests cover zero wins, all classes present, level/exp/default skin,
leader_skin_id_list population, is_random_leader_skin round-trip, and 401 on
unauthenticated access.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
gamer147
2026-06-09 17:37:35 -04:00
parent f204656f4d
commit 11215bd69f
4 changed files with 243 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
using System.Text.Json.Serialization;
using MessagePack;
using SVSim.EmulatedEntrypoint.Models.Dtos;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Profile;
[MessagePackObject]
public sealed class ProfileIndexResponse
{
[JsonPropertyName("user_rank_match_total_win")]
[Key("user_rank_match_total_win")]
public int UserRankMatchTotalWin { get; set; }
[JsonPropertyName("user_class_list")]
[Key("user_class_list")]
public List<UserClass> UserClassList { get; set; } = new();
}