/*
 * (c) 2022 Pluto Inc.
 */
package tv.pluto.grpc.lab_partner;

import com.plutotv.test.lib.LogUtils;
import io.grpc.ManagedChannel;
import java.util.List;
import tv.pluto.grpc.GenericGrpcClient;
import tv.pluto.ip.dal.labpartner.LabPartner;
import tv.pluto.ip.dal.labpartner.LabPartnerManagerGrpc;

/** Class represents gRPC client for <b>lab_partner.proto</b> file */
public class LabPartnerClient extends GenericGrpcClient {
  private LabPartnerManagerGrpc.LabPartnerManagerBlockingStub blockingStub;

  public LabPartnerClient(ManagedChannel channel) {
    blockingStub = LabPartnerManagerGrpc.newBlockingStub(channel);
    blockingStub = blockingStub.withInterceptors(CLIENT_INTERCEPTOR);
  }

  public LabPartner.GetLabPartnerObjectByEpisodeIdsResponse getLabPartnerObjectByEpisodeIds(
      List<String> episodesIds) {
    LogUtils.logInfoMessage("Getting episodes for ids: " + episodesIds + " ...");

    LabPartner.GetLabPartnerObjectByEpisodeIdsRequest request =
        LabPartner.GetLabPartnerObjectByEpisodeIdsRequest.newBuilder()
            .addAllEpisodeIds(episodesIds)
            .build();

    return blockingStub.getLabPartnerObjectByEpisodeIds(request);
  }
}
