using System;
using System.Threading.Tasks;
///
/// 玩家模块。
///
public sealed class BriskPlayerModule
: BriskModuleBase
{
///
/// 获取当前登录玩家信息。
///
public async Task GetMeAsync()
{
return await ExecuteAsync(async context =>
{
var data = await context.HttpClient.GetDataAsync("/player/me", null, true);
var result = BriskModelMapper.ToPlayerMe(data);
context.Session.Update(
context.Session.AccessToken,
context.Session.ExpiresAt,
result.PlayerId,
result.ProjectAccountId,
result.LoginProvider,
result.LoginUserId);
await context.TokenStore.SaveAsync(new BriskStoredSession
{
AccessToken = context.Session.AccessToken,
ExpiresAt = context.Session.ExpiresAt,
PlayerId = result.PlayerId,
ProjectAccountId = result.ProjectAccountId,
LoginProvider = result.LoginProvider,
LoginUserId = result.LoginUserId
});
return result;
});
}
}