package com.infinite.focus.server.vimeo;

import java.io.IOException;
import java.util.List;

import org.springframework.stereotype.Service;

import retrofit2.Call;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

@Service
public class VimeoService implements VimeoApisConfiguration {

	private VimeoRepositoryInterface service;

	public VimeoService() {
		Retrofit retrofit = new Retrofit.Builder().baseUrl(VIMEO_APIS_BASE_URL)
				.addConverterFactory(GsonConverterFactory.create()).build();

		service = retrofit.create(VimeoRepositoryInterface.class);
	}

	public VimeoVideoDetails getVimeoVideoDetailsByVideoId(Long video_id) throws IOException {
		Call<List<VimeoVideoDetails>> retrofitCall = service.getVimeoVideoDetailsByVideoId(video_id);

		Response<List<VimeoVideoDetails>> response = retrofitCall.execute();

		if (!response.isSuccessful()) {
			throw new IOException(response.errorBody() != null ? response.errorBody().string() : "Unknown error");
		}

		return response.body().get(0);
	}

}