Files
BLHX.Server/BLHX.Server.SDK/Controllers/AccountController.cs
2024-02-19 18:11:00 +07:00

51 lines
1.9 KiB
C#

using BLHX.Server.Common.Database;
using BLHX.Server.Sdk;
using BLHX.Server.SDK.Models;
namespace BLHX.Server.SDK.Controllers
{
public class AccountController : IRegisterable
{
public static void Register(WebApplication app)
{
app.MapPost("user/create", (HttpContext ctx, UserCreateRequest req) =>
{
var account = DBManager.AccountContext.Accounts.SingleOrDefault(x => x.DeviceId == req.DeviceId);
UserCreateResponse rsp = new() { Result = 0, IsNew = 0 };
if (account is null)
{
account = new(req.DeviceId, Guid.NewGuid().ToString());
DBManager.AccountContext.Add(account);
DBManager.AccountContext.SaveChanges();
rsp.IsNew = 1;
}
rsp.Uid = account.Uid;
rsp.Token = account.Token;
return ctx.Response.WriteAsJsonAsync(rsp);
});
app.MapPost("user/login", (HttpContext ctx, UserLoginRequest req) =>
{
var account = DBManager.AccountContext.Accounts.SingleOrDefault(x => x.Uid == req.Uid);
if (account is not null && account.Token == req.Token)
{
return ctx.Response.WriteAsJsonAsync(new UserLoginResponse()
{
AccessToken = account.Token,
Birth = null,
ChannelId = req.StoreId,
CurrentTimestampMs = DateTimeOffset.Now.ToUnixTimeMilliseconds(),
KrKmcStatus = 2,
Result = 0,
TransCode = "NULL"
});
}
return ctx.Response.WriteAsJsonAsync(new BaseResponse() { Result = 1 });
});
}
}
}