package org.onebrick.android.core; import org.onebrick.android.models.Chapter; import org.onebrick.android.models.Event; import org.onebrick.android.models.RSVP; import java.util.List; import java.util.Map; import retrofit.Callback; import retrofit.client.Response; import retrofit.http.Field; import retrofit.http.FormUrlEncoded; import retrofit.http.GET; import retrofit.http.POST; import retrofit.http.Path; import retrofit.http.Query; public interface OneBrickService { /** * Get a list of chapters * * @return a list of chapters */ @GET("/chapters.json") Map<String, Chapter> getAllChapters(); /** * get a list of events of a chapter * * @param chapterId * @return all events of a chapter */ @GET("/event.json") List<Event> getAllEvents(@Query("chapter") int chapterId, @Query("nphotos") int numOfPhotos, @Query("search") String searchQuery); /** * get an event detail * * @param eventId * @return event detail of a given event */ @GET("/event/{eventId}.json") Event getEventDetail(@Path("eventId") long eventId, @Query("ukey") String ukey); /** * get all my events (either past or upcoming) * * @param includePastEvents 1 or 0 * @return all my events */ @GET("/event.json") List<Event> getMyEvents(@Query("ukey") String ukey, @Query("includePastEvents") int includePastEvents, @Query("nphotos") int numOfPhotos); /** * verify a user * * @param ukey * @param cb callback return (success/fail) from a server */ @GET("/verify.json") void verify(@Query("ukey") String ukey, Callback<String[]> cb); /** * rsvp to an event * * @param ukey * @param eventId * @param cb callback return for rsvp */ @FormUrlEncoded @POST("/event/{eventId}/rsvp.json") void rsvp(@Field("ukey") String ukey, @Path("eventId") long eventId, Callback<RSVP> cb); /** * un-rsvp to an event * * @param ukey * @param eventId * @param cb callback return for un-rsvp */ @FormUrlEncoded @POST("/event/{eventId}/unrsvp.json") void unrsvp(@Field("ukey") String ukey, @Path("eventId") long eventId, Callback<RSVP> cb); /** * search events * * @param chapterId * @param search * @return search results */ @GET("/event.json") Response search(@Query("chapter") int chapterId, @Query("search") String search); }