package com.instructure.canvasapi.api; import com.instructure.canvasapi.model.CourseNickname; import com.instructure.canvasapi.utilities.APIHelpers; import com.instructure.canvasapi.utilities.CanvasCallback; import java.util.List; import retrofit.Callback; import retrofit.http.Body; import retrofit.http.DELETE; import retrofit.http.GET; import retrofit.http.PUT; import retrofit.http.Path; import retrofit.http.Query; /** * Copyright (c) 2015 Instructure. All rights reserved. */ public class CourseNicknameAPI extends BuildInterfaceAPI { interface NicknameInterface { @GET("/users/self/course_nicknames/") void getAllNicknames(Callback<List<CourseNickname>> callback); @GET("/users/self/course_nicknames/{course_id}") void getNickname(@Path("course_id") long courseId, Callback<CourseNickname> callback); @PUT("/users/self/course_nicknames/{course_id}") void setNickname(@Path("course_id") long courseId, @Query("nickname") String nickname, @Body String body, Callback<CourseNickname> callback); @DELETE("/users/self/course_nicknames/{course_id}") void deleteNickname(@Path("course_id") long courseId, Callback<CourseNickname> callback); @DELETE("/users/self/course_nicknames/") void deleteAllNicknames(Callback<CourseNickname> callback); } public static void getAllNicknames(CanvasCallback<List<CourseNickname>> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildInterface(NicknameInterface.class, callback, false).getAllNicknames(callback); } public static void getNickname(long courseId, CanvasCallback<CourseNickname> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildInterface(NicknameInterface.class, callback, false).getNickname(courseId, callback); } public static void setNickname(long courseId, String nickname, CanvasCallback<CourseNickname> callback) { if (APIHelpers.paramIsNull(callback, nickname) || nickname.length() == 0) { return; } //Reduces the nickname to only 60 max chars per the api docs. nickname = nickname.substring(0, Math.min(nickname.length(), 60)); buildInterface(NicknameInterface.class, callback, false).setNickname(courseId, nickname, "", callback); } public static void deleteNickname(long courseId, CanvasCallback<CourseNickname> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildInterface(NicknameInterface.class, callback, false).deleteNickname(courseId, callback); } public static void deleteAllNicknames(CanvasCallback<CourseNickname> callback) { if (APIHelpers.paramIsNull(callback)) { return; } buildInterface(NicknameInterface.class, callback, false).deleteAllNicknames(callback); } }