class MosaicRepositoryOkHttpImpl extends AbstractRepositoryOkHttpImpl implements MosaicRepository {

  @Override
  public Observable<MosaicInfo> getMosaic(MosaicId mosaicId) {
    Callable<MosaicInfoDTO> callback = () -> getClient().getMosaic(mosaicId.getIdAsHex());
    return exceptionHandling(
        networkTypeObservable.flatMap(
            networkType ->
                call(callback).map(mosaicInfoDTO -> createMosaicInfo(mosaicInfoDTO, networkType))));
  }

  public  MosaicRepositoryOkHttpImpl(
      ApiClient apiClient, Observable<NetworkType> networkTypeObservable);

}