package cz.destil.glasquare.api; import android.text.TextUtils; import cz.destil.glasquare.BuildConfig; import cz.destil.glasquare.util.DebugLog; import retrofit.RequestInterceptor; import retrofit.RestAdapter; /** * Processor for 4sq API. * * @author David 'Destil' Vavra (david@vavra.me) */ public class Api { public static final String BUILD_DATE = "20140130"; public static final String URL = "https://api.foursquare.com/v2"; public static RestAdapter get() { return new RestAdapter.Builder().setServer(URL).setLogLevel(RestAdapter.LogLevel.BASIC).setLog(new RestAdapter.Log() { @Override public void log(String s) { if (BuildConfig.DEBUG) { DebugLog.i(s); } } }).setRequestInterceptor(new RequestInterceptor() { @Override public void intercept(RequestFacade requestFacade) { requestFacade.addQueryParam("v", BUILD_DATE); if (TextUtils.isEmpty(Auth.getToken())) { requestFacade.addQueryParam("client_id", Hidden.CLIENT_ID); requestFacade.addQueryParam("client_secret", Hidden.CLIENT_SECRET); } else { requestFacade.addQueryParam("oauth_token", Auth.getToken()); } } }).build(); } // parent classes common for all requests: public static class FoursquareResponse { FoursquareError meta; public boolean isMissingAuth() { return meta.isMissingAuth(); } } public static class FoursquareError { int code; String errorType; public boolean isMissingAuth() { return "invalid_auth".equals(errorType) || "not_authorized".equals(errorType); } } public static class FoursquareNotification { String type; FoursquareNotificationDetail item; @Override public String toString() { return type + " : " + item; } } public static class FoursquareNotificationDetail { String message; String text; String shout; @Override public String toString() { return message + " " + text + " " + shout; } } }