package com.instructure.canvasapi.api; import com.instructure.canvasapi.model.ColumnDatum; import com.instructure.canvasapi.model.CustomColumn; import com.instructure.canvasapi.utilities.APIHelpers; import com.instructure.canvasapi.utilities.CanvasCallback; import retrofit.http.Body; import retrofit.http.GET; import retrofit.http.POST; import retrofit.http.PUT; import retrofit.http.Path; import retrofit.http.Query; /** * Copyright (c) 2015 Instructure. All rights reserved. */ public class CustomGradebookColumnAPI extends BuildInterfaceAPI { public interface CustomGradebookInterface { @GET("/courses/{course_id}/custom_gradebook_columns") void getGradebookColumns(@Path("course_id") long courseId, CanvasCallback<CustomColumn[]> callback); @POST("/courses/{course_id}/custom_gradebook_columns") void createGradebookColumn(@Path("course_id") long courseId, @Query("column[title]") String title, @Query("column[position]") int position, @Query("column[hidden]") boolean isHidden, @Query("column[teacher_notes]") boolean isTeacherNotes, @Body String body, CanvasCallback<CustomColumn> callback); @GET("/courses/{course_id}/custom_gradebook_columns/{column_id}/data") void getColumnData(@Path("course_id") long courseId, @Path("column_id") long columnId, CanvasCallback<ColumnDatum[]> callback); @PUT("/courses/{course_id}/custom_gradebook_columns/{column_id}/data/{user_id}") void updateColumnData(@Path("course_id") long courseId, @Path("column_id") long columnId, @Path("user_id") long user_Id, @Query("column_data[content]") String content, @Body String body, CanvasCallback<ColumnDatum> callback); } ///////////////////////////////////////////////////////////////////////// // API Calls ///////////////////////////////////////////////////////////////////////// public static void getGradebookColumns(long courseID, CanvasCallback<CustomColumn[]> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildCacheInterface(CustomGradebookInterface.class, callback).getGradebookColumns(courseID, callback); buildInterface(CustomGradebookInterface.class, callback).getGradebookColumns(courseID, callback); } public static void createGradebookColumns(long courseId, String title, int position, boolean isHidden, boolean isTeacherNotes, CanvasCallback<CustomColumn> callback) { if (APIHelpers.paramIsNull(callback, title)) { return; } buildInterface(CustomGradebookInterface.class, callback).createGradebookColumn(courseId, title, position, isHidden, isTeacherNotes, "", callback); } public static void getColumnData(long courseID, long columnId, CanvasCallback<ColumnDatum[]> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildCacheInterface(CustomGradebookInterface.class, callback).getColumnData(courseID, columnId, callback); buildInterface(CustomGradebookInterface.class, callback).getColumnData(courseID, columnId, callback); } public static void updateColumnData(long courseID, long columnId, long userId, String content, CanvasCallback<ColumnDatum> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildInterface(CustomGradebookInterface.class, callback).updateColumnData(courseID, columnId, userId, content, "", callback); } }