package com.pina; import retrofit2.Call; import retrofit2.Response; import retrofit2.Retrofit; import retrofit2.converter.jackson.JacksonConverterFactory; import java.io.IOException; import java.util.List; public class Holodex { private final HolodexService service; public Holodex(){ Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://holodex.net") .addConverterFactory(JacksonConverterFactory.create()) .build(); service = retrofit.create(HolodexService.class); } public List getLiveStreams() throws HolodexException { Call> call = service.getLiveStreams("channel,clip"); return executeCall(call); } public List getUpcomingStreams() throws HolodexException { Call> call = service.getUpcomingStreams("channel,clip"); return executeCall(call); } private T executeCall(Call call) throws HolodexException { try { Response response = call.execute(); if (response.isSuccessful()) { return response.body(); } else { throw new HolodexException("API returned error: " + response.code()); } } catch (IOException e) { System.out.println(e); throw new HolodexException("Failed to execute API call", e); } } }