초기커밋
This commit is contained in:
177
BrokerApiTest/DocQuery/DataExample.cs
Normal file
177
BrokerApiTest/DocQuery/DataExample.cs
Normal file
@@ -0,0 +1,177 @@
|
||||
using PlatformTest.DbQuery;
|
||||
|
||||
using ServerCommon;
|
||||
|
||||
using ServerCore; using ServerBase;
|
||||
|
||||
using USER_GUID = System.String;
|
||||
|
||||
|
||||
// public class DBQUserTest : QueryExecutorBase
|
||||
// {
|
||||
// private string m_combination_key_for_pk = string.Empty;
|
||||
// private string m_combination_key_for_sk = string.Empty;
|
||||
// private UserTestEntity? m_user_test;
|
||||
// private DynamoDbClient m_dynamoDbClient;
|
||||
//
|
||||
// public DBQUserTest(string combinationKeyForPK, string combinationKeyForSK, DynamoDbClient dynamoDbClient)
|
||||
// : base(nameof(DBQUserTest))
|
||||
// {
|
||||
// m_combination_key_for_pk = combinationKeyForPK;
|
||||
// m_combination_key_for_sk = combinationKeyForSK;
|
||||
// m_dynamoDbClient = dynamoDbClient;
|
||||
// }
|
||||
//
|
||||
// //===================================================================================================
|
||||
// // DB 쿼리 직전에 준비해야 할 로직들을 작성한다.
|
||||
// //===================================================================================================
|
||||
// public override async Task<Result> onPrepareQuery()
|
||||
// {
|
||||
// var result = new Result();
|
||||
//
|
||||
// var user_test = getOwner();
|
||||
// NullReferenceCheckHelper.throwIfNull(user_test, () => "user is null !!!");
|
||||
//
|
||||
// var query_batch = getQueryBatch();
|
||||
// NullReferenceCheckHelper.throwIfNull(query_batch,
|
||||
// () => $"query_batch is null !!! - {user_test.toBasicString()}");
|
||||
//
|
||||
// var db_connector = query_batch.getDynamoDbConnector();
|
||||
// NullReferenceCheckHelper.throwIfNull(db_connector,
|
||||
// () => $"db_connector is null !!! - {user_test.toBasicString()}");
|
||||
//
|
||||
// await DynamoDBDocBaseHelper.makePrimaryKey<UserTestDoc>(m_combination_key_for_pk, m_combination_key_for_sk);
|
||||
//
|
||||
// // var ctxs = new List<DynamoDbDocumentQueryContext>();
|
||||
// //
|
||||
// // (result, var user_doc) = await m_user_test.onCopyToDocument();
|
||||
//
|
||||
//
|
||||
// return Task.FromResult(result);
|
||||
// }
|
||||
//
|
||||
// //===================================================================================================
|
||||
// // onPrepareQuery()를 성공할 경우 호출된다.
|
||||
// //===================================================================================================
|
||||
// public override async Task<Result> onQuery()
|
||||
// {
|
||||
// var result = new Result();
|
||||
// var err_msg = string.Empty;
|
||||
//
|
||||
// var user = getOwner();
|
||||
// NullReferenceCheckHelper.throwIfNull(user, () => "user is null !!!");
|
||||
//
|
||||
// var query_batch = getQueryBatch();
|
||||
// NullReferenceCheckHelper.throwIfNull(query_batch, () => $"query_batch is null !!! - {user.toBasicString()}");
|
||||
//
|
||||
// var db_connector = query_batch.getDynamoDbConnector();
|
||||
//
|
||||
// var user_doc = new UserTestDoc(m_combination_key_for_pk, m_combination_key_for_sk);
|
||||
// var user_test_base = new UserTestEntity(EntityType.None);
|
||||
// var user_test_base_attrib = user_test_base.getEntityAttribute<UserTestEntityAttribute>();
|
||||
// NullReferenceCheckHelper.throwIfNull(user_test_base_attrib, () => $"user_test_base_attrib is null !!!");
|
||||
//
|
||||
// user_test_base_attrib.UserId = m_combination_key_for_pk;
|
||||
// user_test_base_attrib.Name = m_combination_key_for_sk;
|
||||
//
|
||||
// var user_test_base_action = user_test_base.getEntityAction<UserTestInsertAction>();
|
||||
// NullReferenceCheckHelper.throwIfNull(user_test_base_action, () => $"user_test_base_action is null !!!");
|
||||
//
|
||||
// result = await user_test_base_action.tryInsertUser(m_combination_key_for_pk, m_combination_key_for_sk);
|
||||
// if (result.isFail())
|
||||
// {
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// var query_context = new DynamoDbDocumentQueryContext(user_doc, QueryType.Insert);
|
||||
// await query_batch.addQuery(new QueryExecutorBase("InsertUser")
|
||||
// {
|
||||
// onPrepareQuery = () => Task.FromResult(new Result()),
|
||||
// onQuery = () => Task.FromResult(new Result()),
|
||||
// onQueryResponseCommit = () => Task.CompletedTask,
|
||||
// onQueryResponseRollback = (errorResult) => Task.CompletedTask
|
||||
// });
|
||||
//
|
||||
// var result = await QueryHelper.sendQueryAndBusinessLog(query_batch);
|
||||
// if (result.isFail())
|
||||
// {
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// return result;
|
||||
// }
|
||||
//
|
||||
// //===================================================================================================
|
||||
// // DB 쿼리를 성공하고, doFnCommit()가 QueryResultType.NotCalledQueryFunc를 반환할 경우 호출된다.
|
||||
// //===================================================================================================
|
||||
// public override Task onQueryResponseCommit()
|
||||
// {
|
||||
// return Task.CompletedTask;
|
||||
// }
|
||||
//
|
||||
// //===================================================================================================
|
||||
// // DB 쿼리를 실패하고, doFnRollback()가 QueryResultType.NotCalledQueryFunc를 반환할 경우 호출된다.
|
||||
// //===================================================================================================
|
||||
// public override Task onQueryResponseRollback(Result errorResult)
|
||||
// {
|
||||
// return Task.CompletedTask;
|
||||
// }
|
||||
// }
|
||||
|
||||
public class UserTestActorLog : ILogActor
|
||||
{
|
||||
}
|
||||
|
||||
// EntityBase를 상속 받은 Entity는 EntityAttributeBase와 EntityActionBase를 상속받아 자동으로 만들어진 Attribute들과 Action들을 가지고 있습니다.
|
||||
// 위 내용은 onInit()에서 직접 생성해서 초기화 한다.
|
||||
|
||||
|
||||
public class DynamoDbExample
|
||||
{
|
||||
private readonly DynamoDbClient m_dynamo_db_client;
|
||||
private readonly UserTestEntity m_user_entity;
|
||||
|
||||
public DynamoDbExample(DynamoDbClient dynamoDbClient)
|
||||
{
|
||||
m_dynamo_db_client = dynamoDbClient;
|
||||
m_user_entity = new UserTestEntity();
|
||||
}
|
||||
|
||||
public async Task<(Result, UserTestDoc?)> insertUser(string userId, string name)
|
||||
{
|
||||
await m_user_entity.onInit();
|
||||
var action = m_user_entity.getEntityAction<UserTestInsertAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(action,
|
||||
() => $"UserTestInsertAction is null !!! - {m_user_entity.toBasicString()}");
|
||||
var (result, user_test_doc) = await action.tryInsertUser(userId, name, m_dynamo_db_client);
|
||||
return (result, user_test_doc);
|
||||
}
|
||||
|
||||
|
||||
public async Task<(Result, UserTestDoc?)> findUserOne(string userId)
|
||||
{
|
||||
await m_user_entity.onInit();
|
||||
var action = m_user_entity.getEntityAction<UserTestFindOneAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(action,
|
||||
() => $"UserTestInsertAction is null !!! - {m_user_entity.toBasicString()}");
|
||||
return await action.findUserOne(userId, m_dynamo_db_client);
|
||||
}
|
||||
|
||||
public async Task<(Result, UserTestDoc?)> updateUser(string userId, string newName)
|
||||
{
|
||||
await m_user_entity.onInit();
|
||||
var action = m_user_entity.getEntityAction<UserTestUpdateOneAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(action,
|
||||
() => $"UserTestUpdateOneAction is null !!! - {m_user_entity.toBasicString()}");
|
||||
return await action.updateOne(userId, newName, m_dynamo_db_client);
|
||||
}
|
||||
|
||||
public async Task<Result> DeleteUserOne(string userId)
|
||||
{
|
||||
await m_user_entity.onInit();
|
||||
var action = m_user_entity.getEntityAction<UserTestDeleteOneAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(action,
|
||||
() => $"UserTestDeleteOneAction is null !!! - {m_user_entity.toBasicString()}");
|
||||
return await action.deleteOne(userId, m_dynamo_db_client);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user