package com.instructure.canvasapi.api; import android.content.Context; import com.instructure.canvasapi.model.CanvasContext; import com.instructure.canvasapi.utilities.CanvasCallback; import com.instructure.canvasapi.utilities.CanvasRestAdapter; import retrofit.Profiler; import retrofit.RestAdapter; public class BuildInterfaceAPI { private static RestAdapter.LogLevel LOG_LEVEL = RestAdapter.LogLevel.NONE; public static <T> T buildCacheInterface(Class<T> clazz, CanvasCallback callback, CanvasContext canvasContext, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, canvasContext, true, perPageQueryParam); return restAdapter.create(clazz); } public static <T> T buildCacheInterface(Class<T> clazz, CanvasCallback callback, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, null, true, perPageQueryParam); return restAdapter.create(clazz); } public static <T> T buildCacheInterface(Class<T> clazz, String domain, CanvasCallback callback, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, domain, null, true, perPageQueryParam); return restAdapter.create(clazz); } public static <T> T buildCacheGenericInterface(Class<T> clazz, final Context context, String domain, boolean perPageQueryParam, boolean shouldIgnoreToken) { RestAdapter restAdapter = CanvasRestAdapter.buildGenericAdapter(context, domain, true, perPageQueryParam, shouldIgnoreToken); return restAdapter.create(clazz); } /** * Creates a rest adapter that will only read from the cache. */ public static <T> T buildCacheInterface(Class<T> clazz, CanvasCallback callback, CanvasContext canvasContext) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, true, canvasContext); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildCacheInterface(Class<T> clazz, Context context, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(context, true, perPageQueryParam); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildCacheInterface(Class<T> clazz, CanvasCallback callback) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, true, null); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildCacheInterface(Class<T> clazz, String domain, CanvasCallback callback) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, domain, true, null); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, CanvasCallback callback, CanvasContext canvasContext) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, canvasContext); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, CanvasCallback callback, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, null, false, perPageQueryParam); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, String domain, CanvasCallback callback, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, domain, null, false, perPageQueryParam); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterfaceNoRedirects(Class<T> clazz, String domain, CanvasCallback callback, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapterNoRedirects(callback, domain, null, false, perPageQueryParam); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, CanvasCallback callback, CanvasContext canvasContext, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback, canvasContext, false, perPageQueryParam); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, Context context) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(context); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, Context context, boolean perPageQueryParam) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(context, perPageQueryParam); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, final Context context, CanvasContext canvasContext) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(context, canvasContext); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, CanvasCallback callback) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(callback); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildInterface(Class<T> clazz, String domain, CanvasCallback callback) { RestAdapter restAdapter = CanvasRestAdapter.buildAdapter(domain, callback); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildGenericInterface(Class<T> clazz, final Context context, String domain, boolean perPageQueryParam, boolean shouldIgnoreToken) { RestAdapter restAdapter = CanvasRestAdapter.buildGenericAdapter(context, domain, false, perPageQueryParam, shouldIgnoreToken); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildUploadInterface(Class<T> clazz, String hostURL) { RestAdapter restAdapter = CanvasRestAdapter.getGenericHostAdapter(hostURL); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } public static <T> T buildPingInterface(Class<T> clazz, String hostURL, Profiler profiler) { RestAdapter restAdapter = CanvasRestAdapter.buildPingRestAdapter(hostURL, profiler); restAdapter.setLogLevel(LOG_LEVEL); return restAdapter.create(clazz); } }