Files
IM_NEW/ContactService.WebApi/Application/IntegrationServices/IdentityIntegrationService.cs
T
2026-04-30 21:08:28 +08:00

48 lines
1.5 KiB
C#

using ContactService.WebApi.Application.Dtos;
using Grpc.Core;
using IM.Commons;
using IM.Protocols.Grpc.User;
namespace ContactService.WebApi.Application.IntegrationServices
{
public class IdentityIntegrationService : IIdentityIntegrationService
{
private readonly UserInternal.UserInternalClient client;
public IdentityIntegrationService(UserInternal.UserInternalClient client)
{
this.client = client;
}
public async Task<Result<UserInfoDto>> FindUserByIdAsync(Guid id)
{
var req = new GetUserInfoRequest()
{
UserId = id.ToString()
};
try
{
var res = await client.GetUserInfoAsyncAsync(req);
return Result.Success(new UserInfoDto
{
Avatar = res.Avatar,
CreationTime = res.CreationTime.ToDateTimeOffset(),
Deletion = res.Deletion.ToDateTimeOffset(),
Description = res.Description,
Email = res.Email,
Id = Guid.Parse(res.Id),
NickName = res.NickName,
Phone = res.Phone,
Region = res.Region,
UserName = res.UserName
});
}catch(RpcException e)
{
return Result.Fail<UserInfoDto>(ResultCode.USER_NOT_FOUND);
}
}
}
}