From 23e422bdf8c33dc06273e1b98f48afab0b8e8d2a Mon Sep 17 00:00:00 2001 From: Gilbert Kimutai Date: Wed, 6 Feb 2019 06:38:19 +0300 Subject: [PATCH] Added repository for all products, orders and customer methods --- .../java/me/gilo/woodroid/Woocommerce.java | 4 - .../me/gilo/woodroid/data/ProductAPI.java | 70 --- .../woodroid/data/ProductVariationAPI.java | 40 -- .../me/gilo/woodroid/data/RestAdapter.java | 3 + .../me/gilo/woodroid/data/ShippingAPI.java | 35 -- .../gilo/woodroid/data/ShippingZoneAPI.java | 35 -- .../me/gilo/woodroid/data/{ => api}/API.java | 2 +- .../woodroid/data/{ => api}/CouponAPI.java | 8 +- .../woodroid/data/{ => api}/CustomerAPI.java | 7 +- .../woodroid/data/{ => api}/OrderAPI.java | 9 +- .../woodroid/data/{ => api}/OrderNoteAPI.java | 9 +- .../me/gilo/woodroid/data/api/ProductAPI.java | 35 ++ .../ProductAttributeAPI.java} | 9 +- .../ProductAttributeTermAPI.java} | 10 +- .../ProductCategoryAPI.java} | 9 +- .../data/{ => api}/ProductReviewAPI.java | 7 +- .../{TagAPI.java => api/ProductTagAPI.java} | 9 +- .../data/api/ProductVariationAPI.java | 46 ++ .../woodroid/data/{ => api}/RefundAPI.java | 9 +- .../data/{ => api}/ShippingClassAPI.java | 7 +- .../woodroid/data/api/ShippingZoneAPI.java | 41 ++ .../{ => api}/ShippingZoneLocationAPI.java | 7 +- .../woodroid/data/{ => api}/TaxClassAPI.java | 7 +- .../woodroid/data/{ => api}/TaxRateAPI.java | 7 +- .../me/gilo/woodroid/models/Attribute.java | 18 +- .../me/gilo/woodroid/models/ShippingZone.java | 33 ++ .../me/gilo/woodroid/models/Variation.java | 557 +++++++++++++++++- .../java/me/gilo/woodroid/repo/APIMethod.java | 16 + .../gilo/woodroid/repo/CouponRepository.java | 9 +- .../woodroid/repo/CustomerRepository.java | 46 ++ .../gilo/woodroid/repo/OrderRepository.java | 73 +++ .../gilo/woodroid/repo/ProductRepository.java | 13 +- .../me/gilo/woodroid/repo/WooRepository.java | 19 +- .../repo/order/OrderNoteRepository.java | 41 ++ .../woodroid/repo/order/RefundRepository.java | 42 ++ .../repo/product/AttributeRepository.java | 47 ++ .../repo/product/AttributeTermRepository.java | 55 ++ .../repo/product/CategoryRepository.java | 47 ++ .../repo/product/ReviewRepository.java | 47 ++ .../repo/product/ShippingClassRepository.java | 47 ++ .../woodroid/repo/product/TagRepository.java | 47 ++ .../repo/product/VariationRepository.java | 51 ++ 42 files changed, 1391 insertions(+), 242 deletions(-) delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/ProductAPI.java delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/ProductVariationAPI.java delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/ShippingAPI.java delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/ShippingZoneAPI.java rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/API.java (99%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/CouponAPI.java (77%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/CustomerAPI.java (84%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/OrderAPI.java (77%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/OrderNoteAPI.java (75%) create mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.java rename woodroid/src/main/java/me/gilo/woodroid/data/{AttributeAPI.java => api/ProductAttributeAPI.java} (80%) rename woodroid/src/main/java/me/gilo/woodroid/data/{AttributeTermAPI.java => api/ProductAttributeTermAPI.java} (81%) rename woodroid/src/main/java/me/gilo/woodroid/data/{CategoryAPI.java => api/ProductCategoryAPI.java} (80%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/ProductReviewAPI.java (84%) rename woodroid/src/main/java/me/gilo/woodroid/data/{TagAPI.java => api/ProductTagAPI.java} (78%) create mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.java rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/RefundAPI.java (76%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/ShippingClassAPI.java (84%) create mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneAPI.java rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/ShippingZoneLocationAPI.java (79%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/TaxClassAPI.java (75%) rename woodroid/src/main/java/me/gilo/woodroid/data/{ => api}/TaxRateAPI.java (81%) create mode 100644 woodroid/src/main/java/me/gilo/woodroid/models/ShippingZone.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/APIMethod.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/CustomerRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/OrderRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/order/OrderNoteRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/order/RefundRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeTermRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/product/CategoryRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/product/ReviewRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/product/ShippingClassRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/product/TagRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/product/VariationRepository.java diff --git a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java index 78ba08a..1fb3daa 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java +++ b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java @@ -1,13 +1,9 @@ package me.gilo.woodroid; import me.gilo.woodroid.dto.CouponData; -import me.gilo.woodroid.models.Coupon; import me.gilo.woodroid.models.Product; -import me.gilo.woodroid.repo.CouponRepository; import me.gilo.woodroid.repo.ProductRepository; import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; import java.util.ArrayList; diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ProductAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/ProductAPI.java deleted file mode 100644 index 6bc1167..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ProductAPI.java +++ /dev/null @@ -1,70 +0,0 @@ -package me.gilo.woodroid.data; - - -import me.gilo.woodroid.data.callbacks.*; -import me.gilo.woodroid.data.callbacks.Data; -import me.gilo.woodroid.models.*; -import retrofit2.Call; -import retrofit2.http.*; -import rx.Observable; - -import java.util.ArrayList; -import java.util.Map; - -public interface ProductAPI { - - - @GET("products/categories") - Call> getCategories(); - - @GET("products") - Call> getProducts(); - - @GET("products/{id}") - Call getProduct(@Path("id") int id); - - @GET("products") - Call> getProducts(@Query("filter[category]") String category); - - @GET("products") - Call> search(@Query("search") String search); - - @GET("products") - Call> filter(@QueryMap Map filter); - - @GET("products/{id}") - Call getRelatedProducts(@Path("id") int id); - - - @GET("products/count") - Call> getProductsCount(); - - @GET("products/{id}/reviews") - Call getProductReviews(@Path("id") int id); - - @GET("products/{id}/orders") - Call getProductOrders(@Path("id") int id); - - - - - /* - /products - /products/count - /products/ - /products//reviews - /products//orders - /products/categories - /products/categories/ - /products/tags - /products/tags/ - /products/shipping_classes - /products/shipping_classes/ - /products/attributes - /products/attributes/ - /products/attributes//terms - /products/attributes//terms/ - /products/bulk - */ - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ProductVariationAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/ProductVariationAPI.java deleted file mode 100644 index 3e3ff42..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ProductVariationAPI.java +++ /dev/null @@ -1,40 +0,0 @@ -package me.gilo.woodroid.data; - - -import me.gilo.woodroid.models.Coupon; -import me.gilo.woodroid.models.OrderNote; -import me.gilo.woodroid.models.Product; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; - -public interface ProductVariationAPI { - - @Headers("Content-Type: application/json") - @POST("products/{id}/variations") - Call create(@Body Product body); - - @GET("products/{id}/variations/{variation_id}") - Call view(@Path("id") int product_id, @Path("note_id") int note_id); - - @GET("products/{id}/variations") - Call> list(@Path("id") int product); - - @Headers("Content-Type: application/json") - @PUT("products/{id}/variations/{variation_id}") - Call update(@Path("id") int product_id, @Path("variation_id") int variation_id, @Body Product body); - - @DELETE("products/{id}/variations/{variation_id}") - Call delete(@Path("id") int product_id, @Path("variation_id") int variation_id); - - @DELETE("products/{id}/variations/{variation_id}") - Call delete(@Path("id") int product_id, @Path("variation_id") int variation_id, @Query("force") boolean force); - - @Headers("Content-Type: application/json") - @PUT("products/{id}/variations/{variation_id}") - Call batch(@Path("id") int product_id, @Path("variation_id") int variation_id, @Body Product body); - - - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java b/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java index 4ffec5a..a26c67e 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java @@ -2,6 +2,7 @@ package me.gilo.woodroid.data; import android.util.Base64; +import me.gilo.woodroid.data.api.API; import okhttp3.HttpUrl; import okhttp3.Interceptor; import okhttp3.OkHttpClient; @@ -157,6 +158,8 @@ public class RestAdapter { // Define the interceptor, add authentication headers Interceptor interceptor = chain -> { + chain.request().method(); + HttpUrl.Builder builder = chain.request().url().newBuilder(); for (NameValuePair entry : params) { builder.addQueryParameter(entry.getName(), entry.getValue()); diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/ShippingAPI.java deleted file mode 100644 index e614a9a..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingAPI.java +++ /dev/null @@ -1,35 +0,0 @@ -package me.gilo.woodroid.data; - - -import me.gilo.woodroid.models.Coupon; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; - -public interface ShippingAPI { - - @Headers("Content-Type: application/json") - @POST("coupons") - Call create(@Body Coupon body); - - @GET("coupons/{id}") - Call view(@Path("id") int id); - - @GET("coupons") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("coupons/{id}") - Call update(@Path("id") int id, @Body Coupon body); - - @DELETE("coupons/{id}") - Call delete(@Path("id") int id); - - @DELETE("coupons/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("coupons/batch") - Call batch(@Body Coupon body); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingZoneAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/ShippingZoneAPI.java deleted file mode 100644 index 57cdda6..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingZoneAPI.java +++ /dev/null @@ -1,35 +0,0 @@ -package me.gilo.woodroid.data; - - -import me.gilo.woodroid.models.Coupon; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; - -public interface ShippingZoneAPI { - - @Headers("Content-Type: application/json") - @POST("coupons") - Call create(@Body Coupon body); - - @GET("coupons/{id}") - Call view(@Path("id") int id); - - @GET("coupons") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("coupons/{id}") - Call update(@Path("id") int id, @Body Coupon body); - - @DELETE("coupons/{id}") - Call delete(@Path("id") int id); - - @DELETE("coupons/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("coupons/batch") - Call batch(@Body Coupon body); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/API.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/API.java similarity index 99% rename from woodroid/src/main/java/me/gilo/woodroid/data/API.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/API.java index fe66a42..a74ed5a 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/API.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/API.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.data.callbacks.*; diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/CouponAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.java similarity index 77% rename from woodroid/src/main/java/me/gilo/woodroid/data/CouponAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.java index 85d9624..7b1a264 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/CouponAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.java @@ -1,11 +1,14 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; +import me.gilo.woodroid.models.Product; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface CouponAPI{ @@ -19,6 +22,9 @@ public interface CouponAPI{ @GET("coupons") Call> list(); + @GET("coupons") + Call> filter(@QueryMap Map filter); + @Headers("Content-Type: application/json") @PUT("coupons/{id}") Call update(@Path("id") int id, @Body Coupon body); diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/CustomerAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.java similarity index 84% rename from woodroid/src/main/java/me/gilo/woodroid/data/CustomerAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.java index 8c8bd6f..d0e9665 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/CustomerAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -7,7 +7,9 @@ import me.gilo.woodroid.models.Download; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface CustomerAPI { @@ -37,4 +39,7 @@ public interface CustomerAPI { @POST("customers/{id}/downloads") Call> downloads(@Path("id") int id); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/OrderAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.java similarity index 77% rename from woodroid/src/main/java/me/gilo/woodroid/data/OrderAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.java index e4adc42..59058eb 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/OrderAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -6,13 +6,15 @@ import me.gilo.woodroid.models.Order; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface OrderAPI { @Headers("Content-Type: application/json") @POST("orders") - Call create(@Body Coupon body); + Call create(@Body Order body); @GET("orders/{id}") Call view(@Path("id") int id); @@ -33,4 +35,7 @@ public interface OrderAPI { @POST("orders/batch") Call batch(@Body Order body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/OrderNoteAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.java similarity index 75% rename from woodroid/src/main/java/me/gilo/woodroid/data/OrderNoteAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.java index 5e8a8c4..7a564a1 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/OrderNoteAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -7,13 +7,15 @@ import me.gilo.woodroid.models.OrderNote; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface OrderNoteAPI { @Headers("Content-Type: application/json") @POST("orders/{id}/notes") - Call create(@Body Coupon body); + Call create(@Path("id") int order_id, @Body OrderNote body); @GET("orders/{id}/notes/{note_id}") Call view(@Path("id") int order_id, @Path("note_id") int note_id); @@ -27,4 +29,7 @@ public interface OrderNoteAPI { @DELETE("orders/{id}/notes/{note_id}") Call delete(@Path("id") int order_id, @Path("note_id") int note_id, @Query("force") boolean force); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.java new file mode 100644 index 0000000..d3ae3d9 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.java @@ -0,0 +1,35 @@ +package me.gilo.woodroid.data.api; + + +import me.gilo.woodroid.data.callbacks.*; +import me.gilo.woodroid.data.callbacks.Data; +import me.gilo.woodroid.models.*; +import retrofit2.Call; +import retrofit2.http.*; +import rx.Observable; + +import java.util.ArrayList; +import java.util.Map; + +public interface ProductAPI { + + + @GET("products") + Call> getProducts(); + + @GET("products/{id}") + Call getProduct(@Path("id") int id); + + @GET("products") + Call> getProducts(@Query("filter[category]") String category); + + @GET("products") + Call> search(@Query("search") String search); + + @GET("products") + Call> filter(@QueryMap Map filter); + + @GET("products/count") + Call> getProductsCount(); + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/AttributeAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.java similarity index 80% rename from woodroid/src/main/java/me/gilo/woodroid/data/AttributeAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.java index 89b2d29..e192ce9 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/AttributeAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Attribute; @@ -6,9 +6,11 @@ import me.gilo.woodroid.models.Coupon; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; -public interface AttributeAPI { +public interface ProductAttributeAPI { @Headers("Content-Type: application/json") @POST("products/attributes") @@ -33,4 +35,7 @@ public interface AttributeAPI { @POST("products/attributes/batch") Call batch(@Body Attribute body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/AttributeTermAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java similarity index 81% rename from woodroid/src/main/java/me/gilo/woodroid/data/AttributeTermAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java index 3a85013..7761ac0 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/AttributeTermAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java @@ -1,14 +1,17 @@ -package me.gilo.woodroid.data; +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.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; -public interface AttributeTermAPI { +public interface ProductAttributeTermAPI { @Headers("Content-Type: application/json") @POST("products/attributes/{id}/terms") @@ -33,4 +36,7 @@ public interface AttributeTermAPI { @POST("products/attributes/batch") Call batch(@Body AttributeTerm body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/CategoryAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.java similarity index 80% rename from woodroid/src/main/java/me/gilo/woodroid/data/CategoryAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.java index 4abac2e..26606db 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/CategoryAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Category; @@ -6,9 +6,11 @@ import me.gilo.woodroid.models.Coupon; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; -public interface CategoryAPI { +public interface ProductCategoryAPI { @Headers("Content-Type: application/json") @POST("products/categories") @@ -33,4 +35,7 @@ public interface CategoryAPI { @POST("products/categories/batch") Call batch(@Body Category body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ProductReviewAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.java similarity index 84% rename from woodroid/src/main/java/me/gilo/woodroid/data/ProductReviewAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.java index 043dc13..168601d 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ProductReviewAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.data.callbacks.ReviewsData; @@ -7,7 +7,9 @@ import me.gilo.woodroid.models.ProductReview; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface ProductReviewAPI { @@ -34,4 +36,7 @@ public interface ProductReviewAPI { @POST("products/reviews/batch") Call batch(@Body ProductReview body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/TagAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.java similarity index 78% rename from woodroid/src/main/java/me/gilo/woodroid/data/TagAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.java index a4686bc..33f4953 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/TagAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -6,9 +6,11 @@ import me.gilo.woodroid.models.Tag; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; -public interface TagAPI { +public interface ProductTagAPI { @Headers("Content-Type: application/json") @POST("products/tags") @@ -33,4 +35,7 @@ public interface TagAPI { @POST("products/tags/batch") Call batch(@Body Tag body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.java new file mode 100644 index 0000000..3afeb1e --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.java @@ -0,0 +1,46 @@ +package me.gilo.woodroid.data.api; + + +import me.gilo.woodroid.models.Coupon; +import me.gilo.woodroid.models.OrderNote; +import me.gilo.woodroid.models.Product; +import me.gilo.woodroid.models.Variation; +import retrofit2.Call; +import retrofit2.http.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public interface ProductVariationAPI { + + @Headers("Content-Type: application/json") + @POST("products/{id}/variations") + Call create(@Path("id") int product_id, @Body Variation body); + + @GET("products/{id}/variations/{variation_id}") + Call view(@Path("id") int product_id, @Path("variation_id") int variation_id); + + @GET("products/{id}/variations") + Call> list(@Path("id") int product_id); + + @Headers("Content-Type: application/json") + @PUT("products/{id}/variations/{variation_id}") + Call update(@Path("id") int product_id, @Path("variation_id") int variation_id, @Body Variation body); + + @DELETE("products/{id}/variations/{variation_id}") + Call delete(@Path("id") int product_id, @Path("variation_id") int variation_id); + + @DELETE("products/{id}/variations/{variation_id}") + Call delete(@Path("id") int product_id, @Path("variation_id") int variation_id, @Query("force") boolean force); + + @Headers("Content-Type: application/json") + @PUT("products/{id}/variations/{variation_id}") + Call batch(@Path("id") int product_id, @Path("variation_id") int variation_id, @Body Product body); + + @GET("coupons") + Call> filter(@QueryMap Map filter); + + + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/RefundAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.java similarity index 76% rename from woodroid/src/main/java/me/gilo/woodroid/data/RefundAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.java index 607b187..7da704e 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/RefundAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -7,13 +7,15 @@ import me.gilo.woodroid.models.Refund; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface RefundAPI { @Headers("Content-Type: application/json") @POST("orders/{id}/refunds") - Call create(@Body Refund body); + Call create(@Path("id") int order_id, @Body Refund body); @GET("orders/{id}/refunds/{refund_id}") Call view(@Path("id") int order_id, @Path("refund_id") int refund_id); @@ -27,4 +29,7 @@ public interface RefundAPI { @DELETE("orders/{id}/refunds/{refund_id}") Call delete(@Path("id") int order_id, @Path("refund_id") int refund_id, @Query("force") boolean force); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingClassAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.java similarity index 84% rename from woodroid/src/main/java/me/gilo/woodroid/data/ShippingClassAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.java index 58f19ce..118c536 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingClassAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -6,7 +6,9 @@ import me.gilo.woodroid.models.ShippingClass; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface ShippingClassAPI { @@ -33,4 +35,7 @@ public interface ShippingClassAPI { @POST("products/shipping_classes/batch") Call batch(@Body ShippingClass body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneAPI.java new file mode 100644 index 0000000..eaa3e47 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneAPI.java @@ -0,0 +1,41 @@ +package me.gilo.woodroid.data.api; + + +import me.gilo.woodroid.models.Coupon; +import me.gilo.woodroid.models.ShippingZone; +import retrofit2.Call; +import retrofit2.http.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public interface ShippingZoneAPI { + + @Headers("Content-Type: application/json") + @POST("shipping/zones") + Call create(@Body ShippingZone body); + + @GET("shipping/zones/{id}") + Call view(@Path("id") int id); + + @GET("shipping/zones") + Call> list(); + + @Headers("Content-Type: application/json") + @PUT("shipping/zones/{id}") + Call update(@Path("id") int id, @Body ShippingZone body); + + @DELETE("shipping/zones/{id}") + Call delete(@Path("id") int id); + + @DELETE("shipping/zones/{id}") + Call delete(@Path("id") int id, @Query("force") boolean force); + + @POST("shipping/zones/batch") + Call batch(@Body ShippingZone body); + + @GET("coupons") + Call> filter(@QueryMap Map filter); + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingZoneLocationAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.java similarity index 79% rename from woodroid/src/main/java/me/gilo/woodroid/data/ShippingZoneLocationAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.java index ed8328b..20a2fc6 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ShippingZoneLocationAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.java @@ -1,11 +1,13 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface ShippingZoneLocationAPI { @@ -32,4 +34,7 @@ public interface ShippingZoneLocationAPI { @POST("coupons/batch") Call batch(@Body Coupon body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/TaxClassAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.java similarity index 75% rename from woodroid/src/main/java/me/gilo/woodroid/data/TaxClassAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.java index fb745bd..e945438 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/TaxClassAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -6,7 +6,9 @@ import me.gilo.woodroid.models.TaxClass; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface TaxClassAPI { @@ -23,4 +25,7 @@ public interface TaxClassAPI { @DELETE("taxes/classes/{id}") Call delete(@Path("id") int id, @Query("force") boolean force); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/TaxRateAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.java similarity index 81% rename from woodroid/src/main/java/me/gilo/woodroid/data/TaxRateAPI.java rename to woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.java index c3d7f1e..1ca3b87 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/TaxRateAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.java @@ -1,4 +1,4 @@ -package me.gilo.woodroid.data; +package me.gilo.woodroid.data.api; import me.gilo.woodroid.models.Coupon; @@ -6,7 +6,9 @@ import me.gilo.woodroid.models.TaxRate; import retrofit2.Call; import retrofit2.http.*; +import java.util.ArrayList; import java.util.List; +import java.util.Map; public interface TaxRateAPI { @@ -33,4 +35,7 @@ public interface TaxRateAPI { @POST("taxes/batch") Call batch(@Body TaxRate body); + @GET("coupons") + Call> filter(@QueryMap Map filter); + } \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.java b/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.java index f8aec18..8382681 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.java +++ b/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.java @@ -4,10 +4,8 @@ import android.os.Parcel; import java.io.Serializable; -/** - * Created by Aron on 11/26/2015. - */ public class Attribute implements Serializable { + int id; private String name; private String slug; private int position; @@ -15,13 +13,13 @@ public class Attribute implements Serializable { private boolean variation; private String[] options; - protected Attribute(Parcel in) { - name = in.readString(); - slug = in.readString(); - position = in.readInt(); - visible = in.readByte() != 0; - variation = in.readByte() != 0; - options = in.createStringArray(); + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; } public String getName() { diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/ShippingZone.java b/woodroid/src/main/java/me/gilo/woodroid/models/ShippingZone.java new file mode 100644 index 0000000..40458a9 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/ShippingZone.java @@ -0,0 +1,33 @@ +package me.gilo.woodroid.models; + +import com.google.gson.annotations.SerializedName; + +public class ShippingZone { + private int id; + private String name; + private int order; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/Variation.java b/woodroid/src/main/java/me/gilo/woodroid/models/Variation.java index dba313e..580edcf 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/models/Variation.java +++ b/woodroid/src/main/java/me/gilo/woodroid/models/Variation.java @@ -1,8 +1,559 @@ package me.gilo.woodroid.models; -/** - * Created by Aron on 11/26/2015. - */ +import java.util.ArrayList; +import java.util.Date; + public class Variation { + int id; + String title; + String name; + String slug; + String permalink; + String type; + String status; + boolean featured; + String catalog_visibility; + String description; + String short_description; + String sku; + String price; + String regular_price; + String sale_price; + Date date_on_sale_from; + Date date_on_sale_from_gmt; + Date date_on_sale_to; + Date date_on_sale_to_gmt; + String price_html; + boolean on_sale; + boolean purchasable; + int total_sales; + boolean virtual; + boolean downloadable; + ArrayList downloads; + int download_limit; + int download_expiry; + String external_url; + String button_text; + String tax_status; + String tax_class; + boolean manage_stock; + int stock_quantity; + boolean in_stock; + String backorders; + boolean backorders_allowed; + boolean backordered; + boolean sold_individually; + String weight; + Object dimensions; + boolean shipping_required; + boolean shipping_taxable; + String shipping_class; + int shipping_class_id; + boolean reviews_allowed; + String average_rating; + int rating_count; + ArrayList related_ids; + ArrayList upsell_ids; + ArrayList cross_sell_ids; + int parent_id; + String purchase_note; + ArrayList categories; + ArrayList tags; + ArrayList attributes; + ArrayList default_attributes; + ArrayList grouped_products; + int menu_order; + ArrayList meta_data; + ArrayList images; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getTitle() { + return name; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSlug() { + return slug; + } + + public void setSlug(String slug) { + this.slug = slug; + } + + public String getPermalink() { + return permalink; + } + + public void setPermalink(String permalink) { + this.permalink = permalink; + } + + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public boolean isFeatured() { + return featured; + } + + public void setFeatured(boolean featured) { + this.featured = featured; + } + + public String getCatalog_visibility() { + return catalog_visibility; + } + + public void setCatalog_visibility(String catalog_visibility) { + this.catalog_visibility = catalog_visibility; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getShort_description() { + return short_description; + } + + public void setShort_description(String short_description) { + this.short_description = short_description; + } + + public String getSku() { + return sku; + } + + public void setSku(String sku) { + this.sku = sku; + } + + public String getPrice() { + return price; + } + + public void setPrice(String price) { + this.price = price; + } + + public String getRegular_price() { + return regular_price; + } + + public void setRegular_price(String regular_price) { + this.regular_price = regular_price; + } + + public String getSale_price() { + return sale_price; + } + + public void setSale_price(String sale_price) { + this.sale_price = sale_price; + } + + public Date getDate_on_sale_from() { + return date_on_sale_from; + } + + public void setDate_on_sale_from(Date date_on_sale_from) { + this.date_on_sale_from = date_on_sale_from; + } + + public Date getDate_on_sale_from_gmt() { + return date_on_sale_from_gmt; + } + + public void setDate_on_sale_from_gmt(Date date_on_sale_from_gmt) { + this.date_on_sale_from_gmt = date_on_sale_from_gmt; + } + + public Date getDate_on_sale_to() { + return date_on_sale_to; + } + + public void setDate_on_sale_to(Date date_on_sale_to) { + this.date_on_sale_to = date_on_sale_to; + } + + public Date getDate_on_sale_to_gmt() { + return date_on_sale_to_gmt; + } + + public void setDate_on_sale_to_gmt(Date date_on_sale_to_gmt) { + this.date_on_sale_to_gmt = date_on_sale_to_gmt; + } + + public String getPrice_html() { + return price_html; + } + + public void setPrice_html(String price_html) { + this.price_html = price_html; + } + + public boolean isOn_sale() { + return on_sale; + } + + public void setOn_sale(boolean on_sale) { + this.on_sale = on_sale; + } + + public boolean isPurchasable() { + return purchasable; + } + + public void setPurchasable(boolean purchasable) { + this.purchasable = purchasable; + } + + public int getTotal_sales() { + return total_sales; + } + + public void setTotal_sales(int total_sales) { + this.total_sales = total_sales; + } + + public boolean isVirtual() { + return virtual; + } + + public void setVirtual(boolean virtual) { + this.virtual = virtual; + } + + public boolean isDownloadable() { + return downloadable; + } + + public void setDownloadable(boolean downloadable) { + this.downloadable = downloadable; + } + + public ArrayList getDownloads() { + return downloads; + } + + public void setDownloads(ArrayList downloads) { + this.downloads = downloads; + } + + public int getDownload_limit() { + return download_limit; + } + + public void setDownload_limit(int download_limit) { + this.download_limit = download_limit; + } + + public int getDownload_expiry() { + return download_expiry; + } + + public void setDownload_expiry(int download_expiry) { + this.download_expiry = download_expiry; + } + + public String getExternal_url() { + return external_url; + } + + public void setExternal_url(String external_url) { + this.external_url = external_url; + } + + public String getButton_text() { + return button_text; + } + + public void setButton_text(String button_text) { + this.button_text = button_text; + } + + public String getTax_status() { + return tax_status; + } + + public void setTax_status(String tax_status) { + this.tax_status = tax_status; + } + + public String getTax_class() { + return tax_class; + } + + public void setTax_class(String tax_class) { + this.tax_class = tax_class; + } + + public boolean isManage_stock() { + return manage_stock; + } + + public void setManage_stock(boolean manage_stock) { + this.manage_stock = manage_stock; + } + + public int getStock_quantity() { + return stock_quantity; + } + + public void setStock_quantity(int stock_quantity) { + this.stock_quantity = stock_quantity; + } + + public boolean isIn_stock() { + return in_stock; + } + + public void setIn_stock(boolean in_stock) { + this.in_stock = in_stock; + } + + public String getBackorders() { + return backorders; + } + + public void setBackorders(String backorders) { + this.backorders = backorders; + } + + public boolean isBackorders_allowed() { + return backorders_allowed; + } + + public void setBackorders_allowed(boolean backorders_allowed) { + this.backorders_allowed = backorders_allowed; + } + + public boolean isBackordered() { + return backordered; + } + + public void setBackordered(boolean backordered) { + this.backordered = backordered; + } + + public boolean isSold_individually() { + return sold_individually; + } + + public void setSold_individually(boolean sold_individually) { + this.sold_individually = sold_individually; + } + + public String getWeight() { + return weight; + } + + public void setWeight(String weight) { + this.weight = weight; + } + + public Object getDimensions() { + return dimensions; + } + + public void setDimensions(Object dimensions) { + this.dimensions = dimensions; + } + + public boolean isShipping_required() { + return shipping_required; + } + + public void setShipping_required(boolean shipping_required) { + this.shipping_required = shipping_required; + } + + public boolean isShipping_taxable() { + return shipping_taxable; + } + + public void setShipping_taxable(boolean shipping_taxable) { + this.shipping_taxable = shipping_taxable; + } + + public String getShipping_class() { + return shipping_class; + } + + public void setShipping_class(String shipping_class) { + this.shipping_class = shipping_class; + } + + public int getShipping_class_id() { + return shipping_class_id; + } + + public void setShipping_class_id(int shipping_class_id) { + this.shipping_class_id = shipping_class_id; + } + + public boolean isReviews_allowed() { + return reviews_allowed; + } + + public void setReviews_allowed(boolean reviews_allowed) { + this.reviews_allowed = reviews_allowed; + } + + public String getAverage_rating() { + return average_rating; + } + + public void setAverage_rating(String average_rating) { + this.average_rating = average_rating; + } + + public int getRating_count() { + return rating_count; + } + + public void setRating_count(int rating_count) { + this.rating_count = rating_count; + } + + public ArrayList getRelated_ids() { + return related_ids; + } + + public void setRelated_ids(ArrayList related_ids) { + this.related_ids = related_ids; + } + + public ArrayList getUpsell_ids() { + return upsell_ids; + } + + public void setUpsell_ids(ArrayList upsell_ids) { + this.upsell_ids = upsell_ids; + } + + public ArrayList getCross_sell_ids() { + return cross_sell_ids; + } + + public void setCross_sell_ids(ArrayList cross_sell_ids) { + this.cross_sell_ids = cross_sell_ids; + } + + public int getParent_id() { + return parent_id; + } + + public void setParent_id(int parent_id) { + this.parent_id = parent_id; + } + + public String getPurchase_note() { + return purchase_note; + } + + public void setPurchase_note(String purchase_note) { + this.purchase_note = purchase_note; + } + + public ArrayList getCategories() { + return categories; + } + + public void setCategories(ArrayList categories) { + this.categories = categories; + } + + public ArrayList getTags() { + return tags; + } + + public void setTags(ArrayList tags) { + this.tags = tags; + } + + public ArrayList getAttributes() { + return attributes; + } + + public void setAttributes(ArrayList attributes) { + this.attributes = attributes; + } + + public ArrayList getDefault_attributes() { + return default_attributes; + } + + public void setDefault_attributes(ArrayList default_attributes) { + this.default_attributes = default_attributes; + } + + public ArrayList getGrouped_products() { + return grouped_products; + } + + public void setGrouped_products(ArrayList grouped_products) { + this.grouped_products = grouped_products; + } + + public int getMenu_order() { + return menu_order; + } + + public void setMenu_order(int menu_order) { + this.menu_order = menu_order; + } + + public ArrayList getMeta_data() { + return meta_data; + } + + public void setMeta_data(ArrayList meta_data) { + this.meta_data = meta_data; + } + + public ArrayList getImages() { + return images; + } + + public void setImages(ArrayList images) { + this.images = images; + } + } diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/APIMethod.java b/woodroid/src/main/java/me/gilo/woodroid/repo/APIMethod.java new file mode 100644 index 0000000..76bff2d --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/APIMethod.java @@ -0,0 +1,16 @@ +package me.gilo.woodroid.repo; + +import me.gilo.woodroid.models.Coupon; +import retrofit2.Call; + +import java.util.List; + +public interface APIMethod { + Call create(T data); + Call get(int id); + Call> all(); + Call update(int id, T data); + Call delete(int id); + Call delete(int id, boolean force); + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/CouponRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/CouponRepository.java index d387b10..0594018 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/repo/CouponRepository.java +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/CouponRepository.java @@ -1,22 +1,17 @@ package me.gilo.woodroid.repo; -import me.gilo.woodroid.data.CouponAPI; +import me.gilo.woodroid.data.api.CouponAPI; import me.gilo.woodroid.models.Coupon; -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.concurrent.TimeUnit; public class CouponRepository extends WooRepository{ private final CouponAPI apiService; public CouponRepository(String baseUrl, String consumerKey, String consumerSecret) { - super(baseUrl, consumerKey, consumerSecret); + super("coupon", baseUrl, consumerKey, consumerSecret); apiService = retrofit.create(CouponAPI.class); } diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/CustomerRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/CustomerRepository.java new file mode 100644 index 0000000..afddf76 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/CustomerRepository.java @@ -0,0 +1,46 @@ +package me.gilo.woodroid.repo; + +import me.gilo.woodroid.data.api.CustomerAPI; +import me.gilo.woodroid.data.api.OrderAPI; +import me.gilo.woodroid.models.Customer; +import me.gilo.woodroid.models.Order; +import retrofit2.Call; + +import java.util.List; + +public class CustomerRepository extends WooRepository{ + + private final CustomerAPI apiService; + + public CustomerRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("customers", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(CustomerAPI.class); + } + + public Call create(Customer customer) { + return apiService.create(customer); + } + + + public Call customer(int id) { + return apiService.view(id); + } + + public Call> customers() { + return apiService.list(); + } + + public Call update(int id, Customer customer) { + return apiService.update(id, customer); + } + + public Call delete(int id) { + return apiService.delete(id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(id, force); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/OrderRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/OrderRepository.java new file mode 100644 index 0000000..2474feb --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/OrderRepository.java @@ -0,0 +1,73 @@ +package me.gilo.woodroid.repo; + +import me.gilo.woodroid.data.api.OrderAPI; +import me.gilo.woodroid.models.Order; +import me.gilo.woodroid.models.OrderNote; +import me.gilo.woodroid.repo.order.OrderNoteRepository; +import me.gilo.woodroid.repo.order.RefundRepository; +import retrofit2.Call; + +import java.util.List; + +public class OrderRepository extends WooRepository { + + private final OrderAPI apiService; + + OrderNoteRepository orderNoteRepository; + RefundRepository refundRepository; + + public OrderRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("orders", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(OrderAPI.class); + + orderNoteRepository = new OrderNoteRepository(baseUrl, consumerKey, consumerSecret); + refundRepository = new RefundRepository(baseUrl, consumerKey, consumerSecret); + } + + public Call create(Order order) { + return apiService.create(order); + } + + public Call order(int id) { + return apiService.view(id); + } + + public Call> orders() { + return apiService.list(); + } + + public Call update(int id, Order order) { + return apiService.update(id, order); + } + + public Call delete(int id) { + return apiService.delete(id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(id, force); + } + + + public Call createNote(Order order, OrderNote note) { + return orderNoteRepository.create(order, note); + } + + public Call note(Order order, int id) { + return orderNoteRepository.note(order, id); + } + + public Call> notes(Order order) { + return orderNoteRepository.notes(order); + } + + public Call deleteNote(Order order, int id) { + return orderNoteRepository.delete(order, id); + } + + public Call deleteNote(Order order, int id, boolean force) { + return orderNoteRepository.delete(order, id, force); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/ProductRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/ProductRepository.java index 3196643..45c4f69 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/repo/ProductRepository.java +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/ProductRepository.java @@ -1,19 +1,22 @@ package me.gilo.woodroid.repo; -import me.gilo.woodroid.data.API; -import me.gilo.woodroid.data.RestAdapter; -import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.data.api.API; +import me.gilo.woodroid.data.api.ProductAPI; +import me.gilo.woodroid.data.api.ProductCategoryAPI; import me.gilo.woodroid.models.Product; +import me.gilo.woodroid.repo.WooRepository; import retrofit2.Call; import java.util.ArrayList; import java.util.HashMap; -public class ProductRepository extends WooRepository{ +public class ProductRepository extends WooRepository { + private final ProductAPI apiService; public ProductRepository(String baseUrl, String consumerKey, String consumerSecret) { - super(baseUrl, consumerKey, consumerSecret); + super("products", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ProductAPI.class); } //TODO diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/WooRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/WooRepository.java index 16572d4..df35986 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/repo/WooRepository.java +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/WooRepository.java @@ -1,17 +1,15 @@ package me.gilo.woodroid.repo; -import me.gilo.woodroid.data.API; import me.gilo.woodroid.data.RestAdapter; -import me.gilo.woodroid.models.Category; -import me.gilo.woodroid.models.Product; +import me.gilo.woodroid.data.api.CouponAPI; +import me.gilo.woodroid.models.Coupon; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Call; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; -import java.util.ArrayList; -import java.util.HashMap; +import java.util.List; import java.util.concurrent.TimeUnit; public class WooRepository { @@ -20,10 +18,10 @@ public class WooRepository { private String consumerKey; private String consumerSecret; - RestAdapter restAdapter; - Retrofit retrofit; + public RestAdapter restAdapter; + public Retrofit retrofit; - public WooRepository(String baseUrl, String consumerKey, String consumerSecret) { + public WooRepository(String method, String baseUrl, String consumerKey, String consumerSecret) { this.baseUrl = baseUrl; this.consumerKey = consumerKey; this.consumerSecret = consumerSecret; @@ -34,7 +32,7 @@ public class WooRepository { restAdapter = new RestAdapter(baseUrl, consumerKey, consumerSecret); OkHttpClient client = new OkHttpClient.Builder() - .addInterceptor(restAdapter.getInterceptor("coupons", null)) + .addInterceptor(restAdapter.getInterceptor(method, null)) .addInterceptor(loggingInterceptor) .readTimeout(30, TimeUnit.SECONDS) .writeTimeout(30, TimeUnit.SECONDS) @@ -46,9 +44,8 @@ public class WooRepository { .addConverterFactory(GsonConverterFactory.create()) .client(client) .build(); - - } + } diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/order/OrderNoteRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/order/OrderNoteRepository.java new file mode 100644 index 0000000..b657810 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/order/OrderNoteRepository.java @@ -0,0 +1,41 @@ +package me.gilo.woodroid.repo.order; + +import me.gilo.woodroid.data.api.OrderNoteAPI; +import me.gilo.woodroid.models.Order; +import me.gilo.woodroid.models.OrderNote; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class OrderNoteRepository extends WooRepository { + + private final OrderNoteAPI apiService; + + public OrderNoteRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("orders", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(OrderNoteAPI.class); + } + + public Call create(Order order, OrderNote note) { + return apiService.create(order.getId(), note); + } + + public Call note( Order order, int id) { + return apiService.view(order.getId(), id); + } + + public Call> notes(Order order) { + return apiService.list(order.getId()); + } + + public Call delete(Order order, int id) { + return apiService.delete(order.getId(), id); + } + + public Call delete(Order order, int id, boolean force) { + return apiService.delete(order.getId(), id, force); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/order/RefundRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/order/RefundRepository.java new file mode 100644 index 0000000..587f19c --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/order/RefundRepository.java @@ -0,0 +1,42 @@ +package me.gilo.woodroid.repo.order; + +import me.gilo.woodroid.data.api.RefundAPI; +import me.gilo.woodroid.models.Order; +import me.gilo.woodroid.models.Refund; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class RefundRepository extends WooRepository { + + private final RefundAPI apiService; + + public RefundRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("orders", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(RefundAPI.class); + + } + + public Call create(Order order, Refund refund) { + return apiService.create(order.getId(), refund); + } + + public Call refund(Order order, int id) { + return apiService.view(order.getId(), id); + } + + public Call> refunds(Order order) { + return apiService.list(order.getId()); + } + + public Call delete(Order order, int id) { + return apiService.delete(order.getId(), id); + } + + public Call delete(Order order, int id, boolean force) { + return apiService.delete(order.getId(), id, force); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeRepository.java new file mode 100644 index 0000000..cb32ee8 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeRepository.java @@ -0,0 +1,47 @@ +package me.gilo.woodroid.repo.product; + +import me.gilo.woodroid.data.api.ProductAttributeAPI; +import me.gilo.woodroid.data.api.ProductCategoryAPI; +import me.gilo.woodroid.models.Attribute; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class AttributeRepository extends WooRepository { + + private final ProductAttributeAPI apiService; + + public AttributeRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("products/attributes", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ProductAttributeAPI.class); + } + + public Call create(Attribute attribute) { + return apiService.create(attribute); + } + + + public Call attribute(int id) { + return apiService.view(id); + } + + public Call> attributes() { + return apiService.list(); + } + + public Call update(int id, Attribute attribute) { + return apiService.update(id, attribute); + } + + public Call delete(int id) { + return apiService.delete(id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(id, force); + } + + +} 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 new file mode 100644 index 0000000..1417ac9 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/AttributeTermRepository.java @@ -0,0 +1,55 @@ +package me.gilo.woodroid.repo.product; + +import me.gilo.woodroid.data.api.ProductAttributeTermAPI; +import me.gilo.woodroid.data.api.ProductCategoryAPI; +import me.gilo.woodroid.models.Attribute; +import me.gilo.woodroid.models.AttributeTerm; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class AttributeTermRepository extends WooRepository { + + private final ProductAttributeTermAPI apiService; + + Attribute attribute; + + public AttributeTermRepository(String baseUrl, String consumerKey, String consumerSecret, Attribute attribute) { + super("products/categories", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ProductAttributeTermAPI.class); + + this.attribute = attribute; + } + + public Call create(AttributeTerm term) { + return apiService.create(term); + } + + public void setAttribute(Attribute attribute) { + this.attribute = attribute; + } + + public Call term(int id) { + return apiService.view(attribute.getId(), id); + } + + public Call> terms() { + return apiService.list(attribute.getId()); + } + + public Call update(int id, AttributeTerm term) { + return apiService.update(attribute.getId(), id, term); + } + + 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); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/product/CategoryRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/product/CategoryRepository.java new file mode 100644 index 0000000..795c9dc --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/CategoryRepository.java @@ -0,0 +1,47 @@ +package me.gilo.woodroid.repo.product; + +import me.gilo.woodroid.data.api.CustomerAPI; +import me.gilo.woodroid.data.api.ProductCategoryAPI; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.models.Customer; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class CategoryRepository extends WooRepository { + + private final ProductCategoryAPI apiService; + + public CategoryRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("products/categories", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ProductCategoryAPI.class); + } + + public Call create(Category category) { + return apiService.create(category); + } + + + public Call category(int id) { + return apiService.view(id); + } + + public Call> categories() { + return apiService.list(); + } + + public Call update(int id, Category category) { + return apiService.update(id, category); + } + + public Call delete(int id) { + return apiService.delete(id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(id, force); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/product/ReviewRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/product/ReviewRepository.java new file mode 100644 index 0000000..4f957a8 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/ReviewRepository.java @@ -0,0 +1,47 @@ +package me.gilo.woodroid.repo.product; + +import me.gilo.woodroid.data.api.ProductCategoryAPI; +import me.gilo.woodroid.data.api.ProductReviewAPI; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.models.ProductReview; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class ReviewRepository extends WooRepository { + + private final ProductReviewAPI apiService; + + public ReviewRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("products/reviews", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ProductReviewAPI.class); + } + + public Call create(ProductReview review) { + return apiService.create(review); + } + + + public Call review(int id) { + return apiService.view(id); + } + + public Call> reviews() { + return apiService.list(); + } + + public Call update(int id, ProductReview review) { + return apiService.update(id, review); + } + + public Call delete(int id) { + return apiService.delete(id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(id, force); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/product/ShippingClassRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/product/ShippingClassRepository.java new file mode 100644 index 0000000..ca2e4a4 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/ShippingClassRepository.java @@ -0,0 +1,47 @@ +package me.gilo.woodroid.repo.product; + +import me.gilo.woodroid.data.api.ProductCategoryAPI; +import me.gilo.woodroid.data.api.ShippingClassAPI; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.models.ShippingClass; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class ShippingClassRepository extends WooRepository { + + private final ShippingClassAPI apiService; + + public ShippingClassRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("products/categories", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ShippingClassAPI.class); + } + + public Call create(ShippingClass shippingClass) { + return apiService.create(shippingClass); + } + + + public Call shippingClass(int id) { + return apiService.view(id); + } + + public Call> shippingClasses() { + return apiService.list(); + } + + public Call update(int id, ShippingClass shippingClass) { + return apiService.update(id, shippingClass); + } + + public Call delete(int id) { + return apiService.delete(id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(id, force); + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/product/TagRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/product/TagRepository.java new file mode 100644 index 0000000..8bdb528 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/TagRepository.java @@ -0,0 +1,47 @@ +package me.gilo.woodroid.repo.product; + +import me.gilo.woodroid.data.api.ProductCategoryAPI; +import me.gilo.woodroid.data.api.ProductTagAPI; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.models.Tag; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +import java.util.List; + +public class TagRepository extends WooRepository { + + private final ProductTagAPI apiService; + + public TagRepository(String baseUrl, String consumerKey, String consumerSecret) { + super("products/categories", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ProductTagAPI.class); + } + + public Call create(Tag tag) { + return apiService.create(tag); + } + + + public Call tag(int id) { + return apiService.view(id); + } + + public Call> tags() { + return apiService.list(); + } + + public Call update(int id, Tag tag) { + return apiService.update(id, tag); + } + + public Call delete(int id) { + return apiService.delete(id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(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 new file mode 100644 index 0000000..6dad60f --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/product/VariationRepository.java @@ -0,0 +1,51 @@ +package me.gilo.woodroid.repo.product; + +import me.gilo.woodroid.data.api.ProductCategoryAPI; +import me.gilo.woodroid.data.api.ProductVariationAPI; +import me.gilo.woodroid.models.Category; +import me.gilo.woodroid.models.Product; +import me.gilo.woodroid.models.Variation; +import me.gilo.woodroid.repo.WooRepository; +import retrofit2.Call; + +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) { + super("products/categories", baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ProductVariationAPI.class); + + this.product = product; + } + + public Call create(Variation variation) { + return apiService.create(product.getId(), variation); + } + + + public Call variation(int id) { + return apiService.view(product.getId(), id); + } + + public Call> variations() { + return apiService.list(product.getId()); + } + + public Call update(int id, Variation variation) { + return apiService.update(product.getId(), id, variation); + } + + public Call delete(int id) { + return apiService.delete(product.getId(), id); + } + + public Call delete(int id, boolean force) { + return apiService.delete(product.getId(), id, force); + } + + +}