초기커밋
This commit is contained in:
67
BrokerApiCore/Repository/UserBaseDocRepo.cs
Normal file
67
BrokerApiCore/Repository/UserBaseDocRepo.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using ServerCommon;
|
||||
|
||||
namespace BrokerCore.Repository;
|
||||
|
||||
using ServerCore; using ServerBase;
|
||||
|
||||
public class UserBaseDocRepo
|
||||
{
|
||||
private readonly DynamoDbClient m_dynamo_db_client;
|
||||
|
||||
public UserBaseDocRepo(DynamoDbClient dynamoDbClient)
|
||||
{
|
||||
this.m_dynamo_db_client = dynamoDbClient;
|
||||
}
|
||||
|
||||
public async Task<(Result, UserBaseDoc?)> findUserBaseDoc(string userGuid)
|
||||
{
|
||||
var (result, primary_key_object) = await DynamoDBDocBaseHelper.makePrimaryKey<UserBaseDoc>(userGuid);
|
||||
if (result.isFail() || primary_key_object == null)
|
||||
{
|
||||
return (result, null);
|
||||
}
|
||||
|
||||
var config = m_dynamo_db_client.makeQueryConfigForReadByPKOnly(primary_key_object.PK);
|
||||
// var (result, user_doc) = await m_dynamoDbClient.simpleQueryDocTypeWithQueryOperationConfig<UserBaseDoc>(config);
|
||||
return await m_dynamo_db_client.simpleQueryDocTypeWithQueryOperationConfig<UserBaseDoc>(config);
|
||||
}
|
||||
|
||||
public async Task<(Result, UserBaseAttrib?)> findUserBaseAttrib(string userGuid)
|
||||
{
|
||||
var (result, doc) = await findUserBaseDoc(userGuid);
|
||||
return (result, doc?.getAttrib<UserBaseAttrib>());
|
||||
}
|
||||
|
||||
public async Task<(Result, string)> findNickname(string userGuid)
|
||||
{
|
||||
var (result, found_nickname_attrib) = await NicknameDoc.findNicknameFromGuid(m_dynamo_db_client, userGuid);
|
||||
if(result.isFail())
|
||||
{
|
||||
return (result, string.Empty);
|
||||
}
|
||||
NullReferenceCheckHelper.throwIfNull(found_nickname_attrib, () => $"found_nickname_attrib is null !!!, userGuid:{userGuid}");
|
||||
return (result, found_nickname_attrib.Nickname);
|
||||
}
|
||||
|
||||
//===================================================================================================
|
||||
// 로그아웃 여부만 체크
|
||||
// TODO: 레디스 캐시를 이용하여 로그인 여부를 체크하는 것이 더 효율적일 수 있음
|
||||
//===================================================================================================
|
||||
public bool isUserLoggedIn(UserBaseAttrib userAttrib)
|
||||
{
|
||||
return userAttrib.GameLoginDateTime > userAttrib.GameLogoutDateTime;
|
||||
}
|
||||
|
||||
// public async Task<Result> insertUserBaseDoc(UserBaseAttrib userAttrib)
|
||||
// {
|
||||
// var user_doc = new UserBaseDoc(userAttrib.UserGuid);
|
||||
// var user_attrib = user_doc.getAttrib<UserBaseAttrib>();
|
||||
// NullReferenceCheckHelper.throwIfNull(user_attrib, () => $"insertUserBaseDoc : user_attrib is null !!! - {userAttrib.UserGuid}");
|
||||
// user_attrib.UserGuid = userAttrib.UserGuid;
|
||||
// user_attrib.AccountId = userAttrib.AccountId;
|
||||
// user_attrib.EOA = userAttrib.EOA;
|
||||
// user_attrib.SelectedCharacterGuid = userAttrib.SelectedCharacterGuid;
|
||||
// user_attrib.IsIntroCompleted = userAttrib.IsIntroCompleted;
|
||||
// return await m_dynamoDbClient.simpleInsertDocumentWithDocType(user_doc);
|
||||
// }
|
||||
}
|
||||
Reference in New Issue
Block a user