From ed0f31421f1316406104e8ae29ff41dbcaf2daf1 Mon Sep 17 00:00:00 2001 From: gilokimu Date: Sun, 3 Mar 2019 17:59:35 +0300 Subject: [PATCH] Add to cart function using cocart --- .../main/java/me/gilo/wc/di/AppComponent.java | 1 + .../main/java/me/gilo/wc/di/AppModule.java | 14 +++ .../java/me/gilo/wc/repo/CartRepository.java | 40 +++++++++ .../java/me/gilo/wc/repo/OrderRepository.java | 10 ++- .../me/gilo/wc/repo/ProductRepository.java | 7 +- .../gilo/wc/repo/WoocommerceRepository.java | 13 --- .../me/gilo/wc/ui/product/ShopActivity.kt | 25 ++++++ .../gilo/wc/viewmodels/ProductViewModel.java | 18 +++- .../baseline_sort_by_alpha_white_18.png | Bin .../baseline_sort_by_alpha_white_24.png | Bin .../baseline_sort_by_alpha_white_36.png | Bin .../baseline_sort_by_alpha_white_48.png | Bin .../baseline_sort_by_alpha_white_18.png | Bin .../baseline_sort_by_alpha_white_24.png | Bin .../baseline_sort_by_alpha_white_36.png | Bin .../baseline_sort_by_alpha_white_48.png | Bin .../baseline_sort_by_alpha_white_18.png | Bin .../baseline_sort_by_alpha_white_24.png | Bin .../baseline_sort_by_alpha_white_36.png | Bin .../baseline_sort_by_alpha_white_48.png | Bin .../baseline_sort_by_alpha_white_18.png | Bin .../baseline_sort_by_alpha_white_24.png | Bin .../baseline_sort_by_alpha_white_36.png | Bin .../baseline_sort_by_alpha_white_48.png | Bin .../baseline_sort_by_alpha_white_18.png | Bin .../baseline_sort_by_alpha_white_24.png | Bin .../baseline_sort_by_alpha_white_36.png | Bin .../baseline_sort_by_alpha_white_48.png | Bin .../drawable/baseline_sort_by_alpha_24.xml | 10 +++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- .../java/me/gilo/woodroid/Woocommerce.java | 10 +++ .../me/gilo/woodroid/data/api/CartAPI.java | 40 +++++++++ .../woodroid/models/filters/CartFilter.java | 27 ++++++ .../me/gilo/woodroid/repo/CartRepository.java | 80 ++++++++++++++++++ 35 files changed, 276 insertions(+), 25 deletions(-) create mode 100644 app/src/main/java/me/gilo/wc/repo/CartRepository.java delete mode 100644 app/src/main/java/me/gilo/wc/repo/WoocommerceRepository.java mode change 100644 => 100755 app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_18.png mode change 100644 => 100755 app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_24.png mode change 100644 => 100755 app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_36.png mode change 100644 => 100755 app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_48.png mode change 100644 => 100755 app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_18.png mode change 100644 => 100755 app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_24.png mode change 100644 => 100755 app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_36.png mode change 100644 => 100755 app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_48.png mode change 100644 => 100755 app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_18.png mode change 100644 => 100755 app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_24.png mode change 100644 => 100755 app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_36.png mode change 100644 => 100755 app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_48.png mode change 100644 => 100755 app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_18.png mode change 100644 => 100755 app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_24.png mode change 100644 => 100755 app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_36.png mode change 100644 => 100755 app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_48.png mode change 100644 => 100755 app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_18.png mode change 100644 => 100755 app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_24.png mode change 100644 => 100755 app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_36.png mode change 100644 => 100755 app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_48.png create mode 100755 app/src/main/res/drawable/baseline_sort_by_alpha_24.xml create mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/models/filters/CartFilter.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java diff --git a/app/src/main/java/me/gilo/wc/di/AppComponent.java b/app/src/main/java/me/gilo/wc/di/AppComponent.java index ef0db86..9ee95fe 100644 --- a/app/src/main/java/me/gilo/wc/di/AppComponent.java +++ b/app/src/main/java/me/gilo/wc/di/AppComponent.java @@ -15,6 +15,7 @@ import javax.inject.Singleton; AndroidSupportInjectionModule.class, ViewModelModule.class, ActivitiesModule.class, + AppModule.class }) interface AppComponent extends AndroidInjector { diff --git a/app/src/main/java/me/gilo/wc/di/AppModule.java b/app/src/main/java/me/gilo/wc/di/AppModule.java index 011620f..07f34d1 100644 --- a/app/src/main/java/me/gilo/wc/di/AppModule.java +++ b/app/src/main/java/me/gilo/wc/di/AppModule.java @@ -3,6 +3,7 @@ package me.gilo.wc.di; import dagger.Module; import dagger.Provides; import me.gilo.wc.WcApp; +import me.gilo.woodroid.Woocommerce; import javax.inject.Singleton; @@ -21,4 +22,17 @@ public class AppModule { return app; } + @Provides + @Singleton + Woocommerce providesWoocommerce() { + Woocommerce woocommerce = new Woocommerce.Builder() + .setSiteUrl("http://157.230.131.179") + .setApiVersion(Woocommerce.API_V3) + .setConsumerKey("ck_26c61abd7eeff238d87dc56585bf26cb2d1a1ec3") + .setConsumerSecret("cs_062e8e3a7ae0ce08fdebc0c39f8f834d5e87598e") + .build(); + + return woocommerce; + } + } diff --git a/app/src/main/java/me/gilo/wc/repo/CartRepository.java b/app/src/main/java/me/gilo/wc/repo/CartRepository.java new file mode 100644 index 0000000..59836c0 --- /dev/null +++ b/app/src/main/java/me/gilo/wc/repo/CartRepository.java @@ -0,0 +1,40 @@ +package me.gilo.wc.repo; + + +import me.gilo.wc.common.WooLiveData; +import me.gilo.woodroid.Woocommerce; +import me.gilo.woodroid.models.LineItem; +import me.gilo.woodroid.models.Order; + +import javax.inject.Inject; +import java.util.Map; + +public class CartRepository { + + @Inject + Woocommerce woocommerce; + + + @Inject + public CartRepository() { + + } + + public WooLiveData> addToCart(int productId) { + final WooLiveData> callBack = new WooLiveData(); + + LineItem lineItem = new LineItem(); + lineItem.setProductId(productId); + lineItem.setQuantity(1); + + woocommerce.CartRepository().addToCart(lineItem).enqueue(callBack); + return callBack; + } + + public WooLiveData> cart() { + final WooLiveData> callBack = new WooLiveData(); + woocommerce.CartRepository().cart().enqueue(callBack); + return callBack; + } + +} diff --git a/app/src/main/java/me/gilo/wc/repo/OrderRepository.java b/app/src/main/java/me/gilo/wc/repo/OrderRepository.java index a8c4be6..5f284bd 100644 --- a/app/src/main/java/me/gilo/wc/repo/OrderRepository.java +++ b/app/src/main/java/me/gilo/wc/repo/OrderRepository.java @@ -2,14 +2,16 @@ package me.gilo.wc.repo; import me.gilo.wc.common.WooLiveData; +import me.gilo.woodroid.Woocommerce; import me.gilo.woodroid.models.Order; -import me.gilo.woodroid.models.Product; -import me.gilo.woodroid.models.filters.ProductFilter; import javax.inject.Inject; -import java.util.List; -public class OrderRepository extends WoocommerceRepository { +public class OrderRepository { + + @Inject + Woocommerce woocommerce; + @Inject public OrderRepository() { diff --git a/app/src/main/java/me/gilo/wc/repo/ProductRepository.java b/app/src/main/java/me/gilo/wc/repo/ProductRepository.java index c342202..eb5eff6 100644 --- a/app/src/main/java/me/gilo/wc/repo/ProductRepository.java +++ b/app/src/main/java/me/gilo/wc/repo/ProductRepository.java @@ -2,17 +2,20 @@ package me.gilo.wc.repo; import me.gilo.wc.common.WooLiveData; +import me.gilo.woodroid.Woocommerce; import me.gilo.woodroid.models.Product; import me.gilo.woodroid.models.filters.ProductFilter; import javax.inject.Inject; import java.util.List; -public class ProductRepository extends WoocommerceRepository { +public class ProductRepository { + + @Inject + Woocommerce woocommerce; @Inject public ProductRepository() { - } public WooLiveData> products() { diff --git a/app/src/main/java/me/gilo/wc/repo/WoocommerceRepository.java b/app/src/main/java/me/gilo/wc/repo/WoocommerceRepository.java deleted file mode 100644 index af13713..0000000 --- a/app/src/main/java/me/gilo/wc/repo/WoocommerceRepository.java +++ /dev/null @@ -1,13 +0,0 @@ -package me.gilo.wc.repo; - -import me.gilo.woodroid.Woocommerce; - -public class WoocommerceRepository { - - Woocommerce woocommerce = new Woocommerce.Builder() - .setSiteUrl("http://157.230.131.179") - .setApiVersion(Woocommerce.API_V3) - .setConsumerKey("ck_26c61abd7eeff238d87dc56585bf26cb2d1a1ec3") - .setConsumerSecret("cs_062e8e3a7ae0ce08fdebc0c39f8f834d5e87598e") - .build(); -} diff --git a/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt b/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt index 687b294..0ac95e2 100644 --- a/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt +++ b/app/src/main/java/me/gilo/wc/ui/product/ShopActivity.kt @@ -54,6 +54,7 @@ class ShopActivity : BaseActivity() { rvShop.adapter = adapter products() + cart() bFilter.setOnClickListener{filter()} } @@ -117,6 +118,30 @@ class ShopActivity : BaseActivity() { }) } + private fun cart() { + viewModel.cart().observe(this, android.arch.lifecycle.Observer { response -> + when (response!!.status()) { + Status.LOADING -> { + } + + Status.SUCCESS -> { + val cartResponse = response.data() + toast("Cart items are " + cartResponse.size) + } + + Status.ERROR -> { + + + } + + Status.EMPTY -> { + + } + } + + }) + } + private fun search(query : String) { viewModel.search(query).observe(this, android.arch.lifecycle.Observer { response -> when (response!!.status()) { diff --git a/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java b/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java index 2f80084..70dff02 100644 --- a/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java +++ b/app/src/main/java/me/gilo/wc/viewmodels/ProductViewModel.java @@ -2,32 +2,44 @@ package me.gilo.wc.viewmodels; import android.arch.lifecycle.ViewModel; import me.gilo.wc.common.WooLiveData; +import me.gilo.wc.repo.CartRepository; import me.gilo.wc.repo.OrderRepository; import me.gilo.wc.repo.ProductRepository; +import me.gilo.woodroid.models.LineItem; import me.gilo.woodroid.models.Order; import me.gilo.woodroid.models.Product; import me.gilo.woodroid.models.filters.ProductFilter; import javax.inject.Inject; import java.util.List; +import java.util.Map; public final class ProductViewModel extends ViewModel { private final ProductRepository productRepository; private final OrderRepository orderRepository; + private final CartRepository cartRepository; @Inject - ProductViewModel(ProductRepository productRepository, OrderRepository orderRepository) { + ProductViewModel(ProductRepository productRepository, + OrderRepository orderRepository, + CartRepository cartRepository + ) { this.productRepository = productRepository; this.orderRepository = orderRepository; + this.cartRepository = cartRepository; } public WooLiveData> products() { return productRepository.products(); } - public WooLiveData addToCart(int productId) { - return orderRepository.addToCart(productId); + public WooLiveData> addToCart(int productId) { + return cartRepository.addToCart(productId); + } + + public WooLiveData> cart() { + return cartRepository.cart(); } public WooLiveData> products(ProductFilter filter) { diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_18.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_24.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_36.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-hdpi/baseline_sort_by_alpha_white_48.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_18.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_24.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_36.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-mdpi/baseline_sort_by_alpha_white_48.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_18.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_24.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_36.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_sort_by_alpha_white_48.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_18.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_24.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_36.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_sort_by_alpha_white_48.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_18.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_24.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_36.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_sort_by_alpha_white_48.png old mode 100644 new mode 100755 diff --git a/app/src/main/res/drawable/baseline_sort_by_alpha_24.xml b/app/src/main/res/drawable/baseline_sort_by_alpha_24.xml new file mode 100755 index 0000000..e2520f3 --- /dev/null +++ b/app/src/main/res/drawable/baseline_sort_by_alpha_24.xml @@ -0,0 +1,10 @@ + + + diff --git a/build.gradle b/build.gradle index 18184a0..6c040d0 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.4.0-alpha03' + classpath 'com.android.tools.build:gradle:3.5.0-alpha05' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca1f29e..2b2abc7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Jan 27 08:51:51 EAT 2019 +#Fri Mar 01 19:09:10 EAT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.0-milestone-1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip diff --git a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java index 3575c78..de2dbd2 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java +++ b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java @@ -28,6 +28,8 @@ public class Woocommerce { final ReportsRepository reportsRepository; + final CartRepository cartRepository; + enum ApiVersion { API_VERSION1{ @@ -53,6 +55,8 @@ public class Woocommerce { public Woocommerce(String siteUrl, ApiVersion apiVerion, String consumerKey, String consumerSecret) { String baseUrl = siteUrl + "/wp-json/wc/v" + apiVerion + "/"; + String cartBaseUrl = siteUrl + "/wp-json/wc/v" + 2 + "/"; + orderNoteRepository = new OrderNoteRepository(baseUrl, consumerKey, consumerSecret); refundRepository = new RefundRepository(baseUrl, consumerKey, consumerSecret); attributeRepository = new AttributeRepository(baseUrl, consumerKey, consumerSecret); @@ -68,6 +72,8 @@ public class Woocommerce { reportsRepository = new ReportsRepository(baseUrl, consumerKey, consumerSecret); + cartRepository = new CartRepository(cartBaseUrl, consumerKey, consumerSecret); + } @@ -158,4 +164,8 @@ public class Woocommerce { public ReportsRepository ReportsRepository() { return reportsRepository; } + + public CartRepository CartRepository() { + return cartRepository; + } } diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java new file mode 100644 index 0000000..ca4772a --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java @@ -0,0 +1,40 @@ +package me.gilo.woodroid.data.api; + + +import me.gilo.woodroid.models.Coupon; +import me.gilo.woodroid.models.LineItem; +import me.gilo.woodroid.models.filters.CartFilter; +import retrofit2.Call; +import retrofit2.http.*; + +import java.util.List; +import java.util.Map; + +public interface CartAPI { + + @Headers("Content-Type: application/json") + @POST("clear") + Call clear(); + + @GET("count-items") + Call count(); + + @GET("cart") + Call> list(); + + @Headers("Content-Type: application/json") + @POST("cart/add") + Call> addToCart(@Body LineItem body); + + @DELETE("cart/cart-item") + Call delete(@Body CartFilter body); + + @GET("cart/cart-item") + Call restore(@Body CartFilter body); + + @Headers("Content-Type: application/json") + @POST("cart/cart-item") + Call update(@Body CartFilter body); + + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/filters/CartFilter.java b/woodroid/src/main/java/me/gilo/woodroid/models/filters/CartFilter.java new file mode 100644 index 0000000..3849aae --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/filters/CartFilter.java @@ -0,0 +1,27 @@ +package me.gilo.woodroid.models.filters; + +public class CartFilter { + + String cart_item_key; + int quantity; + + public CartFilter(String cart_item_key) { + this.cart_item_key = cart_item_key; + } + + public String getCart_item_key() { + return cart_item_key; + } + + public void setCart_item_key(String cart_item_key) { + this.cart_item_key = cart_item_key; + } + + public int getQuantity() { + return quantity; + } + + public void setQuantity(int quantity) { + this.quantity = quantity; + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java new file mode 100644 index 0000000..6fcfd79 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/CartRepository.java @@ -0,0 +1,80 @@ +package me.gilo.woodroid.repo; + +import me.gilo.woodroid.data.api.CartAPI; +import me.gilo.woodroid.data.api.CouponAPI; +import me.gilo.woodroid.data.auth.AuthIntercepter; +import me.gilo.woodroid.models.Coupon; +import me.gilo.woodroid.models.LineItem; +import me.gilo.woodroid.models.filters.CartFilter; +import me.gilo.woodroid.models.filters.CouponFilter; +import okhttp3.OkHttpClient; +import okhttp3.logging.HttpLoggingInterceptor; +import retrofit2.Call; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; + +public class CartRepository{ + + private final CartAPI apiService; + Retrofit retrofit; + + public CartRepository(String baseUrl, String consumerKey, String consumerSecret) { + HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); + loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); + + OkHttpClient client = new OkHttpClient.Builder() + .addInterceptor(loggingInterceptor) + .readTimeout(30, TimeUnit.SECONDS) + .writeTimeout(30, TimeUnit.SECONDS) + .connectTimeout(15, TimeUnit.SECONDS) + .build(); + + retrofit = new Retrofit.Builder() + .baseUrl(baseUrl) + .addConverterFactory(GsonConverterFactory.create()) + .client(client) + .build(); + + apiService = retrofit.create(CartAPI.class); + } + + public Call clear() { + return apiService.clear(); + } + + + public Call count(int id) { + return apiService.count(); + } + + public Call> cart() { + return apiService.list(); + } + + public Call> addToCart(LineItem lineItem) { + return apiService.addToCart(lineItem); + } + + public Call delete(String cardId) { + CartFilter cartFilter = new CartFilter(cardId); + return apiService.delete(cartFilter); + } + + public Call restore(String cardId) { + CartFilter cartFilter = new CartFilter(cardId); + return apiService.restore(cartFilter); + } + + public Call update(String cardId, int quantity) { + CartFilter cartFilter = new CartFilter(cardId); + cartFilter.setQuantity(quantity); + + return apiService.update(cartFilter); + } + + +}