package ch.pizzapp.android.api; import java.util.HashMap; import ch.pizzapp.android.model.AddNewAddressResponseModel; import ch.pizzapp.android.model.AddProductToBasketResponseModel; import ch.pizzapp.android.model.AddressModel; import ch.pizzapp.android.model.AppVersionModel; import ch.pizzapp.android.model.CampaignModel; import ch.pizzapp.android.model.CheckCouponModel; import ch.pizzapp.android.model.CountryModel; import ch.pizzapp.android.model.DeleteAddressResponseModel; import ch.pizzapp.android.model.PaymentMethodsResponseModel; import ch.pizzapp.android.model.RemoveProductFromCartResponseModel; import ch.pizzapp.android.model.ShippingMethodModel; import ch.pizzapp.android.model.StoreInfoModel; import ch.pizzapp.android.model.CityModel; import ch.pizzapp.android.model.ZoneModel; import ch.pizzapp.android.model.cart.CartInfoModel; import ch.pizzapp.android.model.CategoryModel; import ch.pizzapp.android.model.history.OrderHistoryModel; import ch.pizzapp.android.model.UserModel; import ch.pizzapp.android.model.history.OrderHistoryProductModel; import ch.pizzapp.android.model.menu.MenuProductModel; import okhttp3.RequestBody; import retrofit2.Call; import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FieldMap; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; import retrofit2.http.POST; import retrofit2.http.Query; import retrofit2.http.Url; /** * Created by cimenmus on 04/02/2017. */ public interface ApiInterface { @GET(ApiEndPoints.API_GET_ALL_CATEGORIES) Call> getAllCategories(); @GET(ApiEndPoints.API_GET_IGNORED_CATEGORY_IDS) Call> getIgnoredCategoryIds(); @GET(ApiEndPoints.API_GET_PIZZA_CATEGORY_IDS) Call> getPizzaCategoryIds(); @FormUrlEncoded @POST(ApiEndPoints.API_REGISTER) Call> register(@FieldMap HashMap body); @FormUrlEncoded @POST(ApiEndPoints.API_LOGIN) Call> login(@Field("email") String email, @Field("password") String password); @FormUrlEncoded @POST(ApiEndPoints.API_LOGOUT) Call logout(@Field("token") String customerToken); @GET(ApiEndPoints.API_GET_ORDER_HISTORY) Call> getOrderHistory(@Query("token") String token); @POST Call> getCartProducts(@Url String url); @GET(ApiEndPoints.API_GET_CLEAR_CART) Call clearCart(@Query("token") String token); @GET(ApiEndPoints.API_GET_PRODUCTS_BY_CATEGORY) Call> getProductsByCategory(@Query("category_id") String categoryId); @FormUrlEncoded @POST(ApiEndPoints.API_GET_PRODUCT) Call> getProductById(@Field("product_id") int productId); /* * Bu projedeki post servisler bizden form-data bekliyor. Bu serviste @FormUrlEncoded yapınca ve * body'i @FieldMap HashMap body olarak verince, body içindeki alanlar * encode ediliyor, mesela body içindeki "[" karakteri "%5D" ye falan dönüşüyor, dolayısı ile servis bunları okuyamıyor. * Bu sebeple body olarak RequestBody verdim ve servisi çağırırken bod içindeki alanları FormBody olarak ekledim. */ @POST Call> addProductsToBasket(@Url String url, @Body RequestBody body); @GET(ApiEndPoints.API_GET_SHIPPING_METHODS) Call> getShippingMethods(@Query("token") String token); @GET(ApiEndPoints.API_GET_CUSTOMER_ADDRESSES) Call> getCustomerAddresses(@Query("token") String token); @FormUrlEncoded @POST Call> addNewAddress(@Url String url, @FieldMap HashMap body); @FormUrlEncoded @POST Call> deleteAddress(@Url String url, @Field("address_id") String addressId); @GET(ApiEndPoints.API_GET_PAYMENT_METHODS) Call> getPaymentMethods(@Query("token") String token); @FormUrlEncoded @POST Call> createOrder(@Url String url, @FieldMap HashMap body); @FormUrlEncoded @POST(ApiEndPoints.API_CHECK_UPDATE) Call> checkUpdate(@FieldMap HashMap body); @FormUrlEncoded @POST(ApiEndPoints.API_FORGOT_PASSWORD) Call forgotPassword(@Field("email") String emailAddress); @GET(ApiEndPoints.API_GET_CITY_LIST) Call> getCityList(); @GET(ApiEndPoints.API_GET_COUNTRY_LIST) Call> getCountryList(); @FormUrlEncoded @POST(ApiEndPoints.API_GET_ZONE_LIST) Call> getZoneList(@Field("country_id") String countryId); @GET(ApiEndPoints.API_GET_CUSTOMER_PROFILE) Call> getCustomerProfile(@Query("token") String token); @FormUrlEncoded @POST Call updatePassword(@Url String url, @FieldMap HashMap body); @FormUrlEncoded @POST Call> updateProfile(@Url String url, @FieldMap HashMap body); @FormUrlEncoded @POST Call> removeProductFromCart(@Url String url, @FieldMap HashMap body); @GET(ApiEndPoints.API_GET_STORE_INFO) Call> getStoreInfo(); @FormUrlEncoded @POST Call> getOrderProductList(@Url String url, @Field("order_id") String orderId); @FormUrlEncoded @POST Call> checkCoupon(@Url String url, @Field("coupon") String couponCode); @GET(ApiEndPoints.API_CHECK_CAMPAIGN_PIZZAPASS) Call> checkPizzapassCampaign(@Query("token") String token); @GET(ApiEndPoints.API_CHECK_CAMPAIGN_CHAMPAGNE) Call> checkChampagneCampaign(@Query("token") String token); @GET(ApiEndPoints.API_CHECK_DELIVERY_TIME) Call> checkDeliveryTime(); @FormUrlEncoded @POST(ApiEndPoints.API_CHECK_DELIVERY_TIME) Call> checkDeliveryTimeWithDateAndTime(@Field("delivery_date") String deliveryDateAndTime); @FormUrlEncoded @POST Call createPayment(@Url String url, @FieldMap HashMap body); }