feat(mypage): /mypage/finish_battle (returns check=0 — no in-flight state yet)

This commit is contained in:
gamer147
2026-06-12 23:08:42 -04:00
parent b4a87792dc
commit 43e4c06a2c
4 changed files with 68 additions and 0 deletions

View File

@@ -10,7 +10,9 @@ using SVSim.EmulatedEntrypoint.Constants;
using SVSim.EmulatedEntrypoint.Infrastructure;
using SVSim.EmulatedEntrypoint.Models.Dtos;
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests;
using SVSim.EmulatedEntrypoint.Models.Dtos.Requests.MyPage;
using SVSim.EmulatedEntrypoint.Models.Dtos.Responses;
using SVSim.EmulatedEntrypoint.Models.Dtos.Responses.MyPage;
using SVSim.EmulatedEntrypoint.Services;
namespace SVSim.EmulatedEntrypoint.Controllers;
@@ -361,4 +363,11 @@ public class MyPageController : SVSimController
EndTime = row.EndTime.ToString(WireDateFormat, CultureInfo.InvariantCulture),
};
}
[HttpPost("finish_battle")]
public ActionResult<MyPageFinishBattleResponse> FinishBattle([FromBody] MyPageFinishBattleRequest _)
{
if (!TryGetViewerId(out long __)) return Unauthorized();
return new MyPageFinishBattleResponse { CheckUnfinishedBattle = 0 };
}
}

View File

@@ -0,0 +1,14 @@
using MessagePack;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Requests.MyPage;
[MessagePackObject]
public class MyPageFinishBattleRequest : BaseRequest
{
// Wire key is uppercase "SDTRB" — verbatim from
// PlayerPrefsWrapper.SELF_DISCONNECT_OPEN_STATUS_TO_REPLACE_LOG.
[JsonPropertyName("SDTRB")]
[Key("SDTRB")]
public int Sdtrb { get; set; }
}

View File

@@ -0,0 +1,17 @@
using MessagePack;
using System.Text.Json.Serialization;
namespace SVSim.EmulatedEntrypoint.Models.Dtos.Responses.MyPage;
/// <summary>
/// Spec source: docs/api-spec/endpoints/post-login/mypage-finish-battle.md.
/// We always emit check_unfinished_battle=0 because no in-flight battle state
/// is tracked server-side yet. When that lands, branch to is_win + class/rank refresh.
/// </summary>
[MessagePackObject]
public class MyPageFinishBattleResponse
{
[JsonPropertyName("check_unfinished_battle")]
[Key("check_unfinished_battle")]
public int CheckUnfinishedBattle { get; set; }
}