using System.Text.Json;
using XFEExtension.NetCore.ServerInteractive.Attributes;
using XFEExtension.NetCore.ServerInteractive.Implements.Requester;
using XFEExtension.NetCore.ServerInteractive.Interfaces;
using XFEExtension.NetCore.ServerInteractive.Models.RequesterModels;
using XFEExtension.NetCore.ServerInteractive.Utilities.JsonConverter;
namespace XFEExtension.NetCore.ServerInteractive.Utilities.Requester.Services;
///
/// 用户请求服务(包含登录与登录校验)
///
public partial class UserRequestService : StandardRequestServiceBase where T : IUserFaceInfo
{
private readonly JsonSerializerOptions _jsonSerializerOptions = new();
///
/// 用户请求服务
///
public UserRequestService() => _jsonSerializerOptions.Converters.Add(new JsonDateTimeConverter());
///
/// 解析登录响应
///
[Response("user/login", Name = "login")]
public object AnalyzeLoginResponse()
{
var result = JsonSerializer.Deserialize>(Response, _jsonSerializerOptions);
Session = result!.Session;
return result;
}
///
/// 构造登录请求体
///
[Request("user/login", Name = "login")]
public object PostLoginRequest() => new
{
deviceInfo = DeviceInfo,
account = Parameters[0],
password = Parameters[1]
};
///
/// 解析登录校验响应
///
[Response("user/relogin", Name = "relogin")]
public object AnalyzeReloginResponse() => JsonSerializer.Deserialize(Response, _jsonSerializerOptions)!;
///
/// 构造登录校验请求体
///
[Request("user/relogin", Name = "relogin")]
public object PostReloginRequest() => new
{
session = Session,
deviceInfo = DeviceInfo,
};
}