/*
 * (c) 2020 Pluto Inc.
 */
package tv.pluto.grpc.samsung_channel_properties;

import static tv.pluto.ip.dal.samsungchannelproperty.SamsungChannelProperties.GetDocumentsRequest;
import static tv.pluto.ip.dal.samsungchannelproperty.SamsungChannelProperties.SamsungChannelProperty;

import com.plutotv.test.lib.LogUtils;
import io.grpc.Channel;
import java.util.Iterator;
import tv.pluto.grpc.GenericGrpcClient;
import tv.pluto.ip.dal.samsungchannelproperty.SamsungChannelProperties;
import tv.pluto.ip.dal.samsungchannelproperty.SamsungChannelPropertiesManagerGrpc;

public class SamsungChannelPropertiesClient extends GenericGrpcClient {

  private SamsungChannelPropertiesManagerGrpc.SamsungChannelPropertiesManagerBlockingStub
      blockingStub;

  public SamsungChannelPropertiesClient(Channel channel) {
    blockingStub = SamsungChannelPropertiesManagerGrpc.newBlockingStub(channel);
    blockingStub = blockingStub.withInterceptors(CLIENT_INTERCEPTOR);
    this.getCFeedsAllIdsBuilder = SamsungChannelProperties.CFeedsSyncAllIdsRequest.newBuilder();
    this.getCFeedsSyncDocumentsBuilder =
        SamsungChannelProperties.CFeedsSyncDocumentsRequest.newBuilder();
  }

  public Iterator<SamsungChannelProperty> getDocuments() {
    LogUtils.logInfoMessage("Getting all samsung channel properties for content feeds");
    GetDocumentsRequest request = GetDocumentsRequest.newBuilder().build();

    return blockingStub.getDocuments(request);
  }
}
