package tv.pluto.grpc.users;

import io.grpc.Channel;
import tv.pluto.grpc.GenericGrpcClient;
import tv.pluto.ip.dal.users.UserManagerGrpc;
import tv.pluto.ip.dal.users.Users;
import tv.pluto.ip.dal.users.Users.GetByIdRequest;

public class UsersClient extends GenericGrpcClient {
  private UserManagerGrpc.UserManagerBlockingStub blockingStub;

  public UsersClient(Channel channel) {
    blockingStub = UserManagerGrpc.newBlockingStub(channel);
    blockingStub = blockingStub.withInterceptors(CLIENT_INTERCEPTOR);
  }

  public Users.GetByIdResponse getById(String id) {
    GetByIdRequest request = GetByIdRequest.newBuilder().setId(id).build();
    return blockingStub.getById(request);
  }

  public Users.GetByEmailResponse getByEmail(String email) {
    Users.GetByEmailRequest request = Users.GetByEmailRequest.newBuilder().setEmail(email).build();
    return blockingStub.getByEmail(request);
  }
}
