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