Publisher rewarding

This commit is contained in:
2025-11-02 11:59:02 +08:00
parent 5e5f4528b9
commit 322dee4453
8 changed files with 312 additions and 50 deletions

View File

@@ -1,27 +1,33 @@
using DysonNetwork.Shared.Proto;
using Grpc.Core;
using NodaTime.Serialization.Protobuf;
namespace DysonNetwork.Pass.Credit;
public class SocialCreditServiceGrpc(SocialCreditService creditService) : Shared.Proto.SocialCreditService.SocialCreditServiceBase
public class SocialCreditServiceGrpc(SocialCreditService creditService)
: Shared.Proto.SocialCreditService.SocialCreditServiceBase
{
public override async Task<Shared.Proto.SocialCreditRecord> AddRecord(AddSocialCreditRecordRequest request, ServerCallContext context)
public override async Task<SocialCreditRecord> AddRecord(AddSocialCreditRecordRequest request,
ServerCallContext context)
{
var accountId = Guid.Parse(request.AccountId);
var record = await creditService.AddRecord(
request.ReasonType,
request.Reason,
request.Delta,
accountId);
accountId,
request.ExpiredAt.ToInstant()
);
return record.ToProto();
}
public override async Task<SocialCreditResponse> GetSocialCredit(GetSocialCreditRequest request, ServerCallContext context)
public override async Task<SocialCreditResponse> GetSocialCredit(GetSocialCreditRequest request,
ServerCallContext context)
{
var accountId = Guid.Parse(request.AccountId);
var amount = await creditService.GetSocialCredit(accountId);
return new SocialCreditResponse { Amount = amount };
}
}