From 939afd1d9aed810e14cc97be602707694de5dd4f Mon Sep 17 00:00:00 2001 From: Gilbert Kimutai Date: Mon, 18 Feb 2019 06:16:27 +0300 Subject: [PATCH] Resorted to using Repo over service and exposed all the repos available --- .../main/java/me/gilo/wc/ui/ShopActivity.kt | 3 +- .../me/gilo/wc/ui/coupon/AddCouponActivity.kt | 2 +- .../me/gilo/wc/ui/coupon/CouponActivity.kt | 6 +- .../me/gilo/wc/ui/coupon/CouponsActivity.kt | 2 +- .../java/me/gilo/woodroid/Woocommerce.java | 96 +++++++++++++++---- .../data/api/ProductAttributeTermAPI.java | 4 +- .../repo/product/AttributeTermRepository.java | 35 +++---- .../repo/product/VariationRepository.java | 30 +++--- .../gilo/woodroid/services/CouponService.java | 42 -------- .../woodroid/services/CustomerService.java | 42 -------- .../gilo/woodroid/services/OrderService.java | 42 -------- .../woodroid/services/ProductService.java | 42 -------- 12 files changed, 109 insertions(+), 237 deletions(-) delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/services/CouponService.java delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/services/CustomerService.java delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/services/OrderService.java delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/services/ProductService.java diff --git a/app/src/main/java/me/gilo/wc/ui/ShopActivity.kt b/app/src/main/java/me/gilo/wc/ui/ShopActivity.kt index 8d0a63e..402dd8f 100644 --- a/app/src/main/java/me/gilo/wc/ui/ShopActivity.kt +++ b/app/src/main/java/me/gilo/wc/ui/ShopActivity.kt @@ -47,7 +47,7 @@ class ShopActivity : BaseActivity() { .setConsumerSecret("cs_062e8e3a7ae0ce08fdebc0c39f8f834d5e87598e") .build() - woocommerce.Product().products().enqueue(object : Callback> { + woocommerce.ProductRepository().products().enqueue(object : Callback> { override fun onResponse(call: Call>, response: Response>) { val productsResponse = response.body() for (product in productsResponse!!) { @@ -62,7 +62,6 @@ class ShopActivity : BaseActivity() { } }) - } } diff --git a/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt b/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt index fae4799..7c99868 100644 --- a/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt +++ b/app/src/main/java/me/gilo/wc/ui/coupon/AddCouponActivity.kt @@ -42,7 +42,7 @@ class AddCouponActivity : BaseActivity() { private fun createCoupon(coupon: Coupon) { showLoading("Loading", "This won't take long") - woocommerce.Coupon().create(coupon).enqueue(object : Callback { + woocommerce.CouponRepository().create(coupon).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { val couponResponse = response.body() stopShowingLoading() diff --git a/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt b/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt index afb26f0..e57348e 100644 --- a/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt +++ b/app/src/main/java/me/gilo/wc/ui/coupon/CouponActivity.kt @@ -46,7 +46,7 @@ class CouponActivity : BaseActivity() { private fun getCoupon(couponId: Int) { showLoading() - woocommerce.Coupon().coupon(couponId).enqueue(object : Callback { + woocommerce.CouponRepository().coupon(couponId).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { val coupon = response.body()!! @@ -65,7 +65,7 @@ class CouponActivity : BaseActivity() { private fun delete(couponId: Int) { showLoading() - woocommerce.Coupon().delete(couponId).enqueue(object : Callback { + woocommerce.CouponRepository().delete(couponId).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { if (response.isSuccessful) { val coupon = response.body()!! @@ -91,7 +91,7 @@ class CouponActivity : BaseActivity() { private fun update(coupon: Coupon) { showLoading() - woocommerce.Coupon().update(coupon.id, coupon).enqueue(object : Callback { + woocommerce.CouponRepository().update(coupon.id, coupon).enqueue(object : Callback { override fun onResponse(call: Call, response: Response) { val coupon = response.body()!! diff --git a/app/src/main/java/me/gilo/wc/ui/coupon/CouponsActivity.kt b/app/src/main/java/me/gilo/wc/ui/coupon/CouponsActivity.kt index 1486ceb..ccda124 100644 --- a/app/src/main/java/me/gilo/wc/ui/coupon/CouponsActivity.kt +++ b/app/src/main/java/me/gilo/wc/ui/coupon/CouponsActivity.kt @@ -46,7 +46,7 @@ class CouponsActivity : BaseActivity() { //Not best practise, but works for purposes of demo private fun coupons() { - woocommerce.Coupon().coupons().enqueue(object : Callback> { + woocommerce.CouponRepository().coupons().enqueue(object : Callback> { override fun onResponse(call: Call>, response: Response>) { val couponResponse = response.body() for (coupon in couponResponse!!) { diff --git a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java index 423101e..33a2023 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java +++ b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java @@ -1,19 +1,33 @@ package me.gilo.woodroid; -import me.gilo.woodroid.services.CouponService; -import me.gilo.woodroid.services.CustomerService; -import me.gilo.woodroid.services.OrderService; -import me.gilo.woodroid.services.ProductService; +import me.gilo.woodroid.repo.CouponRepository; +import me.gilo.woodroid.repo.CustomerRepository; +import me.gilo.woodroid.repo.OrderRepository; +import me.gilo.woodroid.repo.ProductRepository; +import me.gilo.woodroid.repo.order.OrderNoteRepository; +import me.gilo.woodroid.repo.order.RefundRepository; +import me.gilo.woodroid.repo.product.*; public class Woocommerce { public static final ApiVersion API_V1 = ApiVersion.API_VERSION1; public static final ApiVersion API_V2 = ApiVersion.API_VERSION2; - final CouponService couponService; - final CustomerService customerService; - final OrderService orderService; - final ProductService productService; + final OrderNoteRepository orderNoteRepository; + final RefundRepository refundRepository; + final AttributeRepository attributeRepository; + final AttributeTermRepository attributeTermRepository; + final CategoryRepository categoryRepository; + + final ShippingClassRepository shippingClassRepository; + final TagRepository tagRepository; + final VariationRepository variationRepository; + final CouponRepository couponRepository; + final CustomerRepository customerRepository; + + final OrderRepository orderRepository; + final ProductRepository productRepository; + enum ApiVersion { API_VERSION1{ @@ -38,10 +52,20 @@ public class Woocommerce { public Woocommerce(String siteUrl, ApiVersion apiVerion, String consumerKey, String consumerSecret) { String baseUrl = siteUrl + "/wp-json/wc/v" + apiVerion + "/"; - couponService = new CouponService(baseUrl, consumerKey, consumerSecret); - customerService = new CustomerService(baseUrl, consumerKey, consumerSecret); - orderService = new OrderService(baseUrl, consumerKey, consumerSecret); - productService = new ProductService(baseUrl, consumerKey, consumerSecret); + + orderNoteRepository = new OrderNoteRepository(baseUrl, consumerKey, consumerSecret); + refundRepository = new RefundRepository(baseUrl, consumerKey, consumerSecret); + attributeRepository = new AttributeRepository(baseUrl, consumerKey, consumerSecret); + attributeTermRepository = new AttributeTermRepository(baseUrl, consumerKey, consumerSecret); + categoryRepository = new CategoryRepository(baseUrl, consumerKey, consumerSecret); + shippingClassRepository = new ShippingClassRepository(baseUrl, consumerKey, consumerSecret); + tagRepository = new TagRepository(baseUrl, consumerKey, consumerSecret); + variationRepository = new VariationRepository(baseUrl, consumerKey, consumerSecret); + couponRepository = new CouponRepository(baseUrl, consumerKey, consumerSecret); + customerRepository = new CustomerRepository(baseUrl, consumerKey, consumerSecret); + orderRepository = new OrderRepository(baseUrl, consumerKey, consumerSecret); + productRepository = new ProductRepository(baseUrl, consumerKey, consumerSecret); + } @@ -81,19 +105,51 @@ public class Woocommerce { } } - public CouponService Coupon() { - return couponService; + public OrderNoteRepository OrderNoteRepository() { + return orderNoteRepository; } - public CustomerService Customer() { - return customerService; + public RefundRepository RefundRepository() { + return refundRepository; } - public OrderService Order() { - return orderService; + public AttributeRepository AttributeRepository() { + return attributeRepository; } - public ProductService Product() { - return productService; + public AttributeTermRepository AttributeTermRepository() { + return attributeTermRepository; + } + + public CategoryRepository CategoryRepository() { + return categoryRepository; + } + + public ShippingClassRepository ShippingClassRepository() { + return shippingClassRepository; + } + + public TagRepository TagRepository() { + return tagRepository; + } + + public VariationRepository VariationRepository() { + return variationRepository; + } + + public CouponRepository CouponRepository() { + return couponRepository; + } + + public CustomerRepository CustomerRepository() { + return customerRepository; + } + + public OrderRepository OrderRepository() { + return orderRepository; + } + + public ProductRepository ProductRepository() { + return productRepository; } } diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java index 7761ac0..4071a06 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java @@ -1,9 +1,7 @@ package me.gilo.woodroid.data.api; -import me.gilo.woodroid.models.Attribute; import me.gilo.woodroid.models.AttributeTerm; -import me.gilo.woodroid.models.Coupon; import retrofit2.Call; import retrofit2.http.*; @@ -15,7 +13,7 @@ public interface ProductAttributeTermAPI { @Headers("Content-Type: application/json") @POST("products/attributes/{id}/terms") - Call create(@Body AttributeTerm body); + Call create(@Path("id") int attribute_id, @Body AttributeTerm body); @GET("products/attributes/{id}/terms/[term_id]") Call view(@Path("id") int attribute_id, @Path("term_id") int term_id); diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeTermRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeTermRepository.java index fdb3a6f..b96f6ac 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeTermRepository.java +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeTermRepository.java @@ -1,7 +1,6 @@ package me.gilo.woodroid.repo.product; import me.gilo.woodroid.data.api.ProductAttributeTermAPI; -import me.gilo.woodroid.models.Attribute; import me.gilo.woodroid.models.AttributeTerm; import me.gilo.woodroid.repo.WooRepository; import retrofit2.Call; @@ -12,41 +11,33 @@ public class AttributeTermRepository extends WooRepository { private final ProductAttributeTermAPI apiService; - Attribute attribute; - - public AttributeTermRepository(String baseUrl, String consumerKey, String consumerSecret, Attribute attribute) { + public AttributeTermRepository(String baseUrl, String consumerKey, String consumerSecret) { super(baseUrl, consumerKey, consumerSecret); apiService = retrofit.create(ProductAttributeTermAPI.class); - - this.attribute = attribute; } - public Call create(AttributeTerm term) { - return apiService.create(term); + public Call create(int attribute_id, AttributeTerm term) { + return apiService.create(attribute_id, term); } - public void setAttribute(Attribute attribute) { - this.attribute = attribute; + public Call term(int attribute_id, int id) { + return apiService.view(attribute_id, id); } - public Call term(int id) { - return apiService.view(attribute.getId(), id); + public Call> terms(int attribute_id) { + return apiService.list(attribute_id); } - public Call> terms() { - return apiService.list(attribute.getId()); + public Call update(int attribute_id, int id, AttributeTerm term) { + return apiService.update(attribute_id, id, term); } - public Call update(int id, AttributeTerm term) { - return apiService.update(attribute.getId(), id, term); + public Call delete(int attribute_id, int id) { + return apiService.delete(attribute_id, id); } - public Call delete(int id) { - return apiService.delete(attribute.getId(), id); - } - - public Call delete(int id, boolean force) { - return apiService.delete(attribute.getId(), id, force); + public Call delete(int attribute_id, int id, boolean force) { + return apiService.delete(attribute_id, id, force); } diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/product/VariationRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/product/VariationRepository.java index b429277..1344bb6 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/repo/product/VariationRepository.java +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/VariationRepository.java @@ -1,7 +1,6 @@ package me.gilo.woodroid.repo.product; import me.gilo.woodroid.data.api.ProductVariationAPI; -import me.gilo.woodroid.models.Product; import me.gilo.woodroid.models.Variation; import me.gilo.woodroid.repo.WooRepository; import retrofit2.Call; @@ -11,38 +10,35 @@ import java.util.List; public class VariationRepository extends WooRepository { private final ProductVariationAPI apiService; - Product product; - public VariationRepository(String baseUrl, String consumerKey, String consumerSecret, Product product) { + public VariationRepository(String baseUrl, String consumerKey, String consumerSecret) { super(baseUrl, consumerKey, consumerSecret); apiService = retrofit.create(ProductVariationAPI.class); - - this.product = product; } - public Call create(Variation variation) { - return apiService.create(product.getId(), variation); + public Call create(int product_id, Variation variation) { + return apiService.create(product_id, variation); } - public Call variation(int id) { - return apiService.view(product.getId(), id); + public Call variation(int product_id, int id) { + return apiService.view(product_id, id); } - public Call> variations() { - return apiService.list(product.getId()); + public Call> variations(int product_id) { + return apiService.list(product_id); } - public Call update(int id, Variation variation) { - return apiService.update(product.getId(), id, variation); + public Call update(int product_id, int id, Variation variation) { + return apiService.update(product_id, id, variation); } - public Call delete(int id) { - return apiService.delete(product.getId(), id); + public Call delete(int product_id, int id) { + return apiService.delete(product_id, id); } - public Call delete(int id, boolean force) { - return apiService.delete(product.getId(), id, force); + public Call delete(int product_id, int id, boolean force) { + return apiService.delete(product_id, id, force); } diff --git a/woodroid/src/main/java/me/gilo/woodroid/services/CouponService.java b/woodroid/src/main/java/me/gilo/woodroid/services/CouponService.java deleted file mode 100644 index 41c9f19..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/services/CouponService.java +++ /dev/null @@ -1,42 +0,0 @@ -package me.gilo.woodroid.services; - -import me.gilo.woodroid.models.Coupon; -import me.gilo.woodroid.repo.CouponRepository; -import retrofit2.Call; - -import java.util.List; - -public class CouponService { - - final CouponRepository couponRepository; - - public CouponService(String baseUrl, String consumerKey, String consumerSecret) { - couponRepository = new CouponRepository(baseUrl, consumerKey, consumerSecret); - } - - public Call create(Coupon coupon) { - return couponRepository.create(coupon); - } - - - public Call coupon(int id) { - return couponRepository.coupon(id); - } - - public Call> coupons() { - return couponRepository.coupons(); - } - - public Call update(int id, Coupon coupon) { - return couponRepository.update(id, coupon); - } - - public Call delete(int id) { - return couponRepository.delete(id); - } - - public Call delete(int id, boolean force) { - return couponRepository.delete(id, force); - } - -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/services/CustomerService.java b/woodroid/src/main/java/me/gilo/woodroid/services/CustomerService.java deleted file mode 100644 index 8e8a97b..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/services/CustomerService.java +++ /dev/null @@ -1,42 +0,0 @@ -package me.gilo.woodroid.services; - -import me.gilo.woodroid.models.Customer; -import me.gilo.woodroid.repo.CustomerRepository; -import retrofit2.Call; - -import java.util.List; - -public class CustomerService { - - final CustomerRepository customerRepository; - - public CustomerService(String baseUrl, String consumerKey, String consumerSecret) { - customerRepository = new CustomerRepository(baseUrl, consumerKey, consumerSecret); - } - - public Call create(Customer customer) { - return customerRepository.create(customer); - } - - - public Call customer(int id) { - return customerRepository.customer(id); - } - - public Call> customers() { - return customerRepository.customers(); - } - - public Call update(int id, Customer customer) { - return customerRepository.update(id, customer); - } - - public Call delete(int id) { - return customerRepository.delete(id); - } - - public Call delete(int id, boolean force) { - return customerRepository.delete(id, force); - } - -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/services/OrderService.java b/woodroid/src/main/java/me/gilo/woodroid/services/OrderService.java deleted file mode 100644 index 98e37d3..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/services/OrderService.java +++ /dev/null @@ -1,42 +0,0 @@ -package me.gilo.woodroid.services; - -import me.gilo.woodroid.models.Order; -import me.gilo.woodroid.repo.OrderRepository; -import retrofit2.Call; - -import java.util.List; - -public class OrderService { - - final OrderRepository orderRepository; - - public OrderService(String baseUrl, String consumerKey, String consumerSecret) { - orderRepository = new OrderRepository(baseUrl, consumerKey, consumerSecret); - } - - public Call create(Order order) { - return orderRepository.create(order); - } - - - public Call order(int id) { - return orderRepository.order(id); - } - - public Call> orders() { - return orderRepository.orders(); - } - - public Call update(int id, Order order) { - return orderRepository.update(id, order); - } - - public Call delete(int id) { - return orderRepository.delete(id); - } - - public Call delete(int id, boolean force) { - return orderRepository.delete(id, force); - } - -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/services/ProductService.java b/woodroid/src/main/java/me/gilo/woodroid/services/ProductService.java deleted file mode 100644 index 612776f..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/services/ProductService.java +++ /dev/null @@ -1,42 +0,0 @@ -package me.gilo.woodroid.services; - -import me.gilo.woodroid.models.Product; -import me.gilo.woodroid.repo.ProductRepository; -import retrofit2.Call; - -import java.util.List; - -public class ProductService { - - final ProductRepository productRepository; - - public ProductService(String baseUrl, String consumerKey, String consumerSecret) { - productRepository = new ProductRepository(baseUrl, consumerKey, consumerSecret); - } - - public Call create(Product product) { - return productRepository.create(product); - } - - - public Call product(int id) { - return productRepository.product(id); - } - - public Call> products() { - return productRepository.products(); - } - - public Call update(int id, Product product) { - return productRepository.update(id, product); - } - - public Call delete(int id) { - return productRepository.delete(id); - } - - public Call delete(int id, boolean force) { - return productRepository.delete(id, force); - } - -}