/*
 * (c) 2021 Pluto Inc.
 */
package tv.pluto.grpc.recommendation;

import static tv.pluto.ip.dal.recommendation.Recommendation.StreamDataForAvailableVodContentRecommendationsRequest;
import static tv.pluto.ip.dal.recommendation.Recommendation.StreamDataForAvailableVodContentRecommendationsResponse;
import static tv.pluto.ip.dal.recommendation.RecommendationManagerGrpc.RecommendationManagerBlockingStub;

import io.grpc.Channel;
import java.util.Iterator;
import tv.pluto.grpc.GenericGrpcClient;
import tv.pluto.ip.dal.recommendation.RecommendationManagerGrpc;

public class RecommendationClient extends GenericGrpcClient {

  public RecommendationClient(Channel channel) {
    blockingStub = RecommendationManagerGrpc.newBlockingStub(channel);
    blockingStub = blockingStub.withInterceptors(CLIENT_INTERCEPTOR);
  }

  private RecommendationManagerBlockingStub blockingStub;

  public Iterator<StreamDataForAvailableVodContentRecommendationsResponse>
      getDataForAvailableVodContentRecommendations() {
    StreamDataForAvailableVodContentRecommendationsRequest request =
        StreamDataForAvailableVodContentRecommendationsRequest.newBuilder().build();

    return blockingStub.streamDataForAvailableVodContentRecommendations(request);
  }
}
