/* * Copyright (C) 2014 Simon Vig Therkildsen * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.simonvt.cathode.api.service; import java.util.List; import net.simonvt.cathode.api.entity.AnticipatedItem; import net.simonvt.cathode.api.entity.Comment; import net.simonvt.cathode.api.entity.Movie; import net.simonvt.cathode.api.entity.People; import net.simonvt.cathode.api.entity.TrendingItem; import net.simonvt.cathode.api.entity.UpdatedItem; import net.simonvt.cathode.api.enumeration.Extended; import retrofit2.Call; import retrofit2.http.GET; import retrofit2.http.Path; import retrofit2.http.Query; public interface MoviesService { @GET("/movies/trending") Call<List<TrendingItem>> getTrendingMovies(); @GET("/movies/trending") Call<List<TrendingItem>> getTrendingMovies(@Query("limit") int limit); @GET("/movies/trending") Call<List<TrendingItem>> getTrendingMovies(@Query("limit") int limit, @Query("extended") Extended extended); /** * Returns the most anticipated movies based on the number of lists a movie appears on. */ @GET("/movies/anticipated") Call<List<AnticipatedItem>> getAnticipatedMovies(); /** * Returns the most anticipated movies based on the number of lists a movie appears on. */ @GET("/movies/anticipated") Call<List<AnticipatedItem>> getAnticipatedMovies( @Query("limit") int limit); /** * Returns the most anticipated movies based on the number of lists a movie appears on. */ @GET("/movies/anticipated") Call<List<AnticipatedItem>> getAnticipatedMovies( @Query("limit") int limit, @Query("extended") Extended extended); @GET("/movies/updates/{start_date}") Call<List<UpdatedItem>> updated( @Path("start_date") String startDate, @Query("page") int page, @Query("limit") int limit); @GET("/movies/{id}") Call<Movie> getSummary(@Path("id") long traktId, @Query("extended") Extended extended); @GET("/movies/{id}/people") Call<People> getPeople(@Path("id") long traktId, @Query("extended") Extended extended); /** * <b>Pagination</b> * <p> * Returns all top level comments for a movie. Most recent comments returned first. */ @GET("/movies/{id}/comments") Call<List<Comment>> getComments(@Path("id") long id, @Query("page") int page, @Query("limit") int limit, @Query("extended") Extended extended); /** * <b>Pagination</b> * <p> * Returns related and similar movies. */ @GET("/movies/{id}/related") Call<List<Movie>> getRelated(@Path("id") long id, @Query("limit") int limit, @Query("extended") Extended extended); }