mirror of
https://gitea.tendokyu.moe/Kayori/MedusaPluginChargeMachine.git
synced 2026-10-11 08:48:14 +03:00
41 lines
1.3 KiB
C#
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) };
|
|
}
|
|
}
|