Files
Kayori_MedusaPluginChargeMa…/MedusaPluginChargeMachine/Handlers/LA9/OpChPassEaChargeHandler.cs
T

41 lines
1.3 KiB
C#

using Abstractions.Entities;
using Abstractions.Handlers;
using Abstractions.Services;
using MedusaPluginChargeMachine.Models.Request;
using MedusaPluginChargeMachine.Models.Response;
using MedusaPluginChargeMachine.Services;
using Microsoft.AspNetCore.Identity;
using Abstractions.SerializationTypes;
namespace MedusaPluginChargeMachine.Handlers.LA9;
public class OpChPassEaChargeHandler(
ISessionService sessionService,
ICardService cardService,
UserManager<User> userManager) : Handler<OpChPassRequest, OpChPassResponse>
{
public override void Configure()
{
Module("eacharge");
Method("opchpass");
}
public override async Task<OpChPassResponse> HandleAsync(OpChPassRequest req, GameModel model)
{
var session = sessionService.GetSession(req.SessionId);
var card = await cardService.FindByCardId(session.refId);
if (card is null)
return new OpChPassResponse { Status = 1, Result = new XrpcInt(1) };
var valid = await cardService.ValidatePinAsync(card.KonamiId, req.Passwd);
if (!valid)
return new OpChPassResponse { Status = 1, Result = new XrpcInt(1) };
card.User.Pin = req.NewPasswd;
await userManager.UpdateAsync(card.User);
return new OpChPassResponse { Status = 0, Result = new XrpcInt(0) };
}
}