package com.instructure.canvasapi.api; import com.instructure.canvasapi.model.CanvasContext; import com.instructure.canvasapi.model.Tab; import com.instructure.canvasapi.utilities.APIHelpers; import com.instructure.canvasapi.utilities.CanvasCallback; import retrofit.http.Body; import retrofit.http.GET; import retrofit.http.PUT; import retrofit.http.Path; import retrofit.http.Query; /** * * Copyright (c) 2014 Instructure. All rights reserved. */ public class TabAPI extends BuildInterfaceAPI { interface TabsInterface { @PUT("{/context_id}/tabs{tab_id}") void updateTab(@Query("hidden") Integer hidden, @Query("position") Integer oneBasedIndexPosition, @Body String body, CanvasCallback<Tab> callback); @GET("/{context_id}/tabs?include[]=external") void getTabs(@Path("context_id") long context_id, CanvasCallback<Tab[]> callback); } ///////////////////////////////////////////////////////////////////////// // API Calls ///////////////////////////////////////////////////////////////////////// public static void getTabs(CanvasContext canvasContext, CanvasCallback<Tab[]> callback) { if (APIHelpers.paramIsNull(callback, canvasContext)) return; buildCacheInterface(TabsInterface.class, callback, canvasContext).getTabs(canvasContext.getId(), callback); buildInterface(TabsInterface.class, callback, canvasContext).getTabs(canvasContext.getId(), callback); } /** * * @param newIsHidden (Optional) * @param newOneBasedIndexPosition (Optional) * @param canvasContext (Required) * @param tab (Required) * @param callback (Required) */ public static void updateTab(Boolean newIsHidden, Integer newOneBasedIndexPosition, CanvasContext canvasContext, Tab tab, CanvasCallback<Tab>callback){ if(APIHelpers.paramIsNull(callback,canvasContext,tab) || (newOneBasedIndexPosition != null && newOneBasedIndexPosition < 1)) {return;} Integer hiddenInteger = newIsHidden == null ? null : APIHelpers.booleanToInt(newIsHidden); buildInterface(TabsInterface.class, callback,canvasContext).updateTab(hiddenInteger, newOneBasedIndexPosition, "", callback); } }