package com.sweetzpot.stravazpot.activity.rest;
import com.sweetzpot.stravazpot.activity.model.Activity;
import com.sweetzpot.stravazpot.activity.model.ActivityLap;
import com.sweetzpot.stravazpot.activity.model.ActivityType;
import com.sweetzpot.stravazpot.activity.model.ActivityZone;
import com.sweetzpot.stravazpot.common.model.Distance;
import com.sweetzpot.stravazpot.common.model.Time;
import java.util.List;
import retrofit2.Call;
import retrofit2.http.DELETE;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Path;
import retrofit2.http.Query;
public interface ActivityRest {
@POST("activities") @FormUrlEncoded
Call<Activity> createActivity(
@Field("name") String name,
@Field("type") ActivityType type,
@Field("start_date_local") String startDate,
@Field("elapsed_time") Time elapsedTime,
@Field("description") String description,
@Field("distance") Distance distance,
@Field("private") Integer isPrivate,
@Field("trainer") Integer trainer,
@Field("commute") Integer commute);
@GET("activities/{id}")
Call<Activity> getActivity(
@Path("id") Integer id,
@Query("include_all_efforts") Boolean includeAllEfforts);
@PUT("activities/{id}") @FormUrlEncoded
Call<Activity> updateActivity(
@Path("id") Integer id,
@Field("name") String name,
@Field("type") ActivityType type,
@Field("private") Boolean isPrivate,
@Field("commute") Boolean commute,
@Field("trainer") Boolean trainer,
@Field("gear_id") String gearID,
@Field("description") String description);
@DELETE("activities/{id}")
Call<Void> deleteActivity(@Path("id") Integer id);
@GET("athlete/activities")
Call<List<Activity>> getMyActivities(
@Query("before") Time before,
@Query("after") Time after,
@Query("page") Integer page,
@Query("per_page") Integer perPage);
@GET("activities/following")
Call<List<Activity>> getFriendsActivities(
@Query("before") Time before,
@Query("page") Integer page,
@Query("per_page") Integer perPage);
@GET("activities/{id}/related")
Call<List<Activity>> getRelatedActivities(
@Path("id") Integer id,
@Query("page") Integer page,
@Query("per_page") Integer perPage);
@GET("activities/{id}/zones")
Call<List<ActivityZone>> getActivityZones(@Path("id") Integer id);
@GET("activities/{id}/laps")
Call<List<ActivityLap>> getActivityLaps(@Path("id") Integer id);
}