♻️ Move the realm service from sphere to the pass

This commit is contained in:
2025-10-21 23:45:36 +08:00
parent 46ebd92dc1
commit d6c37784e1
33 changed files with 6220 additions and 510 deletions

View File

@@ -3,7 +3,7 @@ using DysonNetwork.Shared.Proto;
namespace DysonNetwork.Shared.Registry;
public class AccountClientHelper(AccountService.AccountServiceClient accounts)
public class RemoteAccountService(AccountService.AccountServiceClient accounts)
{
public async Task<Account> GetAccount(Guid id)
{

View File

@@ -0,0 +1,60 @@
using DysonNetwork.Shared.Models;
using DysonNetwork.Shared.Proto;
namespace DysonNetwork.Shared.Registry;
public class RemoteRealmService(RealmService.RealmServiceClient realms)
{
public async Task<SnRealm> GetRealm(string id)
{
var request = new GetRealmRequest { Id = id };
var response = await realms.GetRealmAsync(request);
return SnRealm.FromProtoValue(response);
}
public async Task<SnRealm> GetRealmBySlug(string slug)
{
var request = new GetRealmRequest { Slug = slug };
var response = await realms.GetRealmAsync(request);
return SnRealm.FromProtoValue(response);
}
public async Task<List<Guid>> GetUserRealms(Guid accountId)
{
var request = new GetUserRealmsRequest { AccountId = accountId.ToString() };
var response = await realms.GetUserRealmsAsync(request);
return response.RealmIds.Select(Guid.Parse).ToList();
}
public async Task SendInviteNotify(SnRealmMember member)
{
var protoMember = member.ToProtoValue();
var request = new SendInviteNotifyRequest { Member = protoMember };
await realms.SendInviteNotifyAsync(request);
}
public async Task<bool> IsMemberWithRole(Guid realmId, Guid accountId, List<int> requiredRoles)
{
var request = new IsMemberWithRoleRequest { RealmId = realmId.ToString(), AccountId = accountId.ToString() };
request.RequiredRoles.AddRange(requiredRoles);
var response = await realms.IsMemberWithRoleAsync(request);
return response.Value;
}
public async Task<SnRealmMember> LoadMemberAccount(SnRealmMember member)
{
var protoMember = member.ToProtoValue();
var request = new LoadMemberAccountRequest { Member = protoMember };
var response = await realms.LoadMemberAccountAsync(request);
return SnRealmMember.FromProtoValue(response);
}
public async Task<List<SnRealmMember>> LoadMemberAccounts(List<SnRealmMember> members)
{
var protoMembers = members.Select(m => m.ToProtoValue()).ToList();
var request = new LoadMemberAccountsRequest();
request.Members.AddRange(protoMembers);
var response = await realms.LoadMemberAccountsAsync(request);
return response.Members.Select(SnRealmMember.FromProtoValue).ToList();
}
}

View File

@@ -36,11 +36,11 @@ public static class ServiceInjectionHelper
public static IServiceCollection AddAccountService(this IServiceCollection services)
{
services
.AddGrpcClient<AccountService.AccountServiceClient>(o => o.Address = new Uri("https://_grpc.pass") )
.AddGrpcClient<AccountService.AccountServiceClient>(o => o.Address = new Uri("https://_grpc.pass"))
.ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler()
{ ServerCertificateCustomValidationCallback = (_, _, _, _) => true }
);
services.AddSingleton<AccountClientHelper>();
services.AddSingleton<RemoteAccountService>();
services
.AddGrpcClient<BotAccountReceiverService.BotAccountReceiverServiceClient>(o =>
@@ -59,10 +59,17 @@ public static class ServiceInjectionHelper
.ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler()
{ ServerCertificateCustomValidationCallback = (_, _, _, _) => true }
);
services
.AddGrpcClient<RealmService.RealmServiceClient>(o => o.Address = new Uri("https://_grpc.pass"))
.ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler()
{ ServerCertificateCustomValidationCallback = (_, _, _, _) => true }
);
services.AddSingleton<RemoteRealmService>();
return services;
}
public static IServiceCollection AddDriveService(this IServiceCollection services)
{
services.AddGrpcClient<FileService.FileServiceClient>(o => o.Address = new Uri("https://_grpc.drive"))
@@ -70,7 +77,8 @@ public static class ServiceInjectionHelper
{ ServerCertificateCustomValidationCallback = (_, _, _, _) => true }
);
services.AddGrpcClient<FileReferenceService.FileReferenceServiceClient>(o => o.Address = new Uri("https://_grpc.drive"))
services.AddGrpcClient<FileReferenceService.FileReferenceServiceClient>(o =>
o.Address = new Uri("https://_grpc.drive"))
.ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler()
{ ServerCertificateCustomValidationCallback = (_, _, _, _) => true }
);
@@ -80,7 +88,8 @@ public static class ServiceInjectionHelper
public static IServiceCollection AddPublisherService(this IServiceCollection services)
{
services.AddGrpcClient<PublisherService.PublisherServiceClient>(o => o.Address = new Uri("https://_grpc.sphere"))
services
.AddGrpcClient<PublisherService.PublisherServiceClient>(o => o.Address = new Uri("https://_grpc.sphere"))
.ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler()
{ ServerCertificateCustomValidationCallback = (_, _, _, _) => true }
);
@@ -90,11 +99,12 @@ public static class ServiceInjectionHelper
public static IServiceCollection AddDevelopService(this IServiceCollection services)
{
services.AddGrpcClient<CustomAppService.CustomAppServiceClient>(o => o.Address = new Uri("https://_grpc.develop"))
services.AddGrpcClient<CustomAppService.CustomAppServiceClient>(o =>
o.Address = new Uri("https://_grpc.develop"))
.ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler()
{ ServerCertificateCustomValidationCallback = (_, _, _, _) => true }
);
return services;
}
}
}