package com.ponyvillelive.pvlmobile.net;
import android.app.Application;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.ponyvillelive.pvlmobile.R;
import com.ponyvillelive.pvlmobile.model.net.ArrayResponse;
import com.ponyvillelive.pvlmobile.model.DebugData;
import com.ponyvillelive.pvlmobile.model.net.MapResponse;
import com.ponyvillelive.pvlmobile.model.NowPlayingMeta;
import com.ponyvillelive.pvlmobile.model.net.ObjectResponse;
import com.ponyvillelive.pvlmobile.model.Show;
import com.ponyvillelive.pvlmobile.model.Station;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import javax.inject.Inject;
import retrofit.http.Path;
import rx.Observable;
/**
* A mock implementation of the PVL API
*/
public class MockAPI implements API {
private DebugData data;
@Inject
public MockAPI(Application application) {
InputStream is = application.getResources().openRawResource(R.raw.debug_json);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
Gson gson = new GsonBuilder().create();
this.data = gson.fromJson(br, DebugData.class);
}
@Override
public Observable<ArrayResponse<Station>> getStationList() {
return Observable.just(data.stations.get("all"));
}
@Override
public Observable<ArrayResponse<Station>> getStationList(@Path("category") String category) {
return Observable.just(data.stations.get(category));
}
@Override
public Observable<MapResponse<String, NowPlayingMeta>> getNowPlaying() {
return Observable.just(data.nowPlaying);
}
@Override
public Observable<ObjectResponse<NowPlayingMeta>> getNowPlayingForStation(@Path("id") int id) {
return null;
}
@Override
public Observable<ArrayResponse<Show>> getShows() {
return null;
}
@Override
public Observable<ArrayResponse<Show>> getAllShows() {
return null;
}
@Override
public Observable<ObjectResponse<Show>> getEpisodesForShow(@Path("id") String id) {
return null;
}
}