From 688433d9e6e0aff71fd39931658d3e7894adb8f3 Mon Sep 17 00:00:00 2001 From: Gilbert Kimutai Date: Sun, 7 Apr 2019 09:48:58 +0300 Subject: [PATCH] added payments, settings and shipping methods into the api --- .../java/me/gilo/woodroid/Woocommerce.java | 20 +++++ .../me/gilo/woodroid/callback/WooCall.java | 10 +++ .../gilo/woodroid/callback/WooCallback.java | 18 ---- .../woodroid/data/api/PaymentGatewayAPI.java | 23 +++++ .../gilo/woodroid/data/api/SettingsAPI.java | 20 +++-- .../woodroid/data/api/ShippingMethodAPI.java | 21 +++++ .../gilo/woodroid/models/PaymentGateway.java | 88 +++++++++++++++++++ .../models/PaymentGatewaySetting.java | 82 +++++++++++++++++ .../gilo/woodroid/models/ShippingMethod.java | 34 +++++++ .../repo/PaymentGatewayRepository.java | 30 +++++++ .../woodroid/repo/SettingsRepository.java | 37 ++++++++ .../repo/ShippingMethodRepository.java | 29 ++++++ 12 files changed, 385 insertions(+), 27 deletions(-) create mode 100644 woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java delete mode 100644 woodroid/src/main/java/me/gilo/woodroid/callback/WooCallback.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/api/PaymentGatewayAPI.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/models/PaymentGateway.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/models/PaymentGatewaySetting.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/models/ShippingMethod.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/PaymentGatewayRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/SettingsRepository.java create mode 100644 woodroid/src/main/java/me/gilo/woodroid/repo/ShippingMethodRepository.java diff --git a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java index 2adfd2f..bd4a561 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java +++ b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java @@ -2,6 +2,7 @@ package me.gilo.woodroid; import android.content.Context; import android.util.Log; +import me.gilo.woodroid.models.PaymentGateway; import me.gilo.woodroid.repo.*; import me.gilo.woodroid.repo.order.OrderNoteRepository; import me.gilo.woodroid.repo.order.RefundRepository; @@ -36,6 +37,10 @@ public class Woocommerce { final CartRepository cartRepository; + final PaymentGatewayRepository paymentGatewayRepository; + final SettingsRepository settingsRepository; + final ShippingMethodRepository shippingMethodRepository; + enum ApiVersion { API_VERSION1{ @@ -81,6 +86,9 @@ public class Woocommerce { cartRepository = new CartRepository(cartBaseUrl, consumerKey, consumerSecret); reviewRepository = new ReviewRepository(baseUrl, consumerKey, consumerSecret); + paymentGatewayRepository = new PaymentGatewayRepository(baseUrl, consumerKey, consumerSecret); + settingsRepository = new SettingsRepository(baseUrl, consumerKey, consumerSecret); + shippingMethodRepository = new ShippingMethodRepository(baseUrl, consumerKey, consumerSecret); } @@ -177,6 +185,18 @@ public class Woocommerce { return reportsRepository; } + public PaymentGatewayRepository PaymentGatewayRepository() { + return paymentGatewayRepository; + } + + public SettingsRepository SettingsRepository() { + return settingsRepository; + } + + public ShippingMethodRepository ShippingMethodRepository() { + return shippingMethodRepository; + } + public CartRepository CartRepository(Context context) { cartRepository.turnOnCookies(context); return cartRepository; diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java new file mode 100644 index 0000000..59323b7 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java @@ -0,0 +1,10 @@ +package me.gilo.woodroid.callback; + +import android.arch.lifecycle.LiveData; +import retrofit2.Call; +import retrofit2.Callback; +import retrofit2.Response; + +public interface WooCall extends Call { + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCallback.java b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCallback.java deleted file mode 100644 index dad289d..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package me.gilo.woodroid.callback; - -import android.arch.lifecycle.LiveData; -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; - -public class WooCallback implements Callback { - @Override - public void onResponse(Call call, Response response) { - - } - - @Override - public void onFailure(Call call, Throwable t) { - - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/PaymentGatewayAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/PaymentGatewayAPI.java new file mode 100644 index 0000000..4d1a607 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/PaymentGatewayAPI.java @@ -0,0 +1,23 @@ +package me.gilo.woodroid.data.api; + + +import me.gilo.woodroid.callback.WooCall; +import me.gilo.woodroid.models.PaymentGateway; +import retrofit2.http.*; + +import java.util.List; + +public interface PaymentGatewayAPI { + + + @GET("payment_gateways/{id}") + WooCall view(@Path("id") int id); + + @GET("payment_gateways") + WooCall> list(); + + @Headers("Content-Type: application/json") + @PUT("payment_gateways") + WooCall update(@Path("id") String id, @Body PaymentGateway body); + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.java index f83f69b..3f2b584 100644 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.java +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.java @@ -1,10 +1,8 @@ package me.gilo.woodroid.data.api; -import me.gilo.woodroid.models.SettingGroup; -import me.gilo.woodroid.models.SettingOption; -import me.gilo.woodroid.models.TaxRate; -import me.gilo.woodroid.models.WebhookDelivery; +import me.gilo.woodroid.callback.WooCall; +import me.gilo.woodroid.models.*; import retrofit2.Call; import retrofit2.http.*; @@ -15,17 +13,21 @@ import java.util.Map; public interface SettingsAPI { @GET("settings") - Call> settings(); + WooCall> settings(); @GET("settings/{group_id}/{id}") - Call option(@Path("group_id") int group_id, @Path("id") int option_id); + WooCall option(@Path("group_id") String group_id, @Path("id") String option_id); @GET("settings/{id}") - Call> options(@Path("id") int group_id); + WooCall> options(@Path("id") String group_id); @Headers("Content-Type: application/json") - @GET("settings/{group_id}/{id}") - Call update(@Path("group_id") int group_id, @Path("id") int option_id); + @PUT("settings/{group_id}/{id}") + WooCall update( + @Path("group_id") String group_id, + @Path("id") String option_id, + @Body SettingOption body + ); diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.java new file mode 100644 index 0000000..79058b4 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.java @@ -0,0 +1,21 @@ +package me.gilo.woodroid.data.api; + + +import me.gilo.woodroid.callback.WooCall; +import me.gilo.woodroid.models.Coupon; +import me.gilo.woodroid.models.ShippingMethod; +import retrofit2.Call; +import retrofit2.http.*; + +import java.util.List; +import java.util.Map; + +public interface ShippingMethodAPI { + + @GET("shipping_methods/{id}") + WooCall view(@Path("id") String id); + + @GET("shipping_methods") + WooCall> list(); + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/PaymentGateway.java b/woodroid/src/main/java/me/gilo/woodroid/models/PaymentGateway.java new file mode 100644 index 0000000..0306224 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/PaymentGateway.java @@ -0,0 +1,88 @@ +package me.gilo.woodroid.models; + +import java.util.Map; + +public class PaymentGateway { + + String id; + String title; + String description; + int order; + boolean enabled; + String method_title; + String method_description; + String[] method_supports; + Map settings; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public String getMethod_title() { + return method_title; + } + + public void setMethod_title(String method_title) { + this.method_title = method_title; + } + + public String getMethod_description() { + return method_description; + } + + public void setMethod_description(String method_description) { + this.method_description = method_description; + } + + public String[] getMethod_supports() { + return method_supports; + } + + public void setMethod_supports(String[] method_supports) { + this.method_supports = method_supports; + } + + public Map getSettings() { + return settings; + } + + public void setSettings(Map settings) { + this.settings = settings; + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/PaymentGatewaySetting.java b/woodroid/src/main/java/me/gilo/woodroid/models/PaymentGatewaySetting.java new file mode 100644 index 0000000..b823c24 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/PaymentGatewaySetting.java @@ -0,0 +1,82 @@ +package me.gilo.woodroid.models; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.Map; + +public class PaymentGatewaySetting { + + String id; + String label; + String description; + String type; + String value; + @JsonProperty("default") + String default_value; + String tip; + String placeholder; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public String getDefault_value() { + return default_value; + } + + public void setDefault_value(String default_value) { + this.default_value = default_value; + } + + public String getTip() { + return tip; + } + + public void setTip(String tip) { + this.tip = tip; + } + + public String getPlaceholder() { + return placeholder; + } + + public void setPlaceholder(String placeholder) { + this.placeholder = placeholder; + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/ShippingMethod.java b/woodroid/src/main/java/me/gilo/woodroid/models/ShippingMethod.java new file mode 100644 index 0000000..2994afe --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/ShippingMethod.java @@ -0,0 +1,34 @@ +package me.gilo.woodroid.models; + +import com.google.gson.annotations.SerializedName; + + +public class ShippingMethod { + private String id; + private String title; + private String descriptioon; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescriptioon() { + return descriptioon; + } + + public void setDescriptioon(String descriptioon) { + this.descriptioon = descriptioon; + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/PaymentGatewayRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/PaymentGatewayRepository.java new file mode 100644 index 0000000..8155908 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/PaymentGatewayRepository.java @@ -0,0 +1,30 @@ +package me.gilo.woodroid.repo; + +import me.gilo.woodroid.callback.WooCall; +import me.gilo.woodroid.data.api.PaymentGatewayAPI; +import me.gilo.woodroid.models.PaymentGateway; + +import java.util.List; + +public class PaymentGatewayRepository extends WooRepository{ + + private final PaymentGatewayAPI apiService; + + public PaymentGatewayRepository(String baseUrl, String consumerKey, String consumerSecret) { + super( baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(PaymentGatewayAPI.class); + } + + public WooCall paymentGateway(int id) { + return apiService.view(id); + } + + public WooCall> paymentGateways() { + return apiService.list(); + } + + public WooCall update(String id, PaymentGateway paymentGateway) { + return apiService.update(id, paymentGateway); + } + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/SettingsRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/SettingsRepository.java new file mode 100644 index 0000000..dcbad44 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/SettingsRepository.java @@ -0,0 +1,37 @@ +package me.gilo.woodroid.repo; + +import me.gilo.woodroid.callback.WooCall; +import me.gilo.woodroid.data.api.SettingsAPI; +import me.gilo.woodroid.data.api.ShippingMethodAPI; +import me.gilo.woodroid.models.SettingGroup; +import me.gilo.woodroid.models.SettingOption; +import me.gilo.woodroid.models.ShippingMethod; + +import java.util.List; + +public class SettingsRepository extends WooRepository{ + + private final SettingsAPI apiService; + + public SettingsRepository(String baseUrl, String consumerKey, String consumerSecret) { + super( baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(SettingsAPI.class); + } + + public WooCall> settings() { + return apiService.settings(); + } + + public WooCall option(String group_id, String option_id) { + return apiService.option(group_id, option_id); + } + + public WooCall> options(String group_id) { + return apiService.options(group_id); + } + + public WooCall updateOption(String group_id, String option_id, SettingOption option) { + return apiService.update(group_id, option_id, option); + } + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/repo/ShippingMethodRepository.java b/woodroid/src/main/java/me/gilo/woodroid/repo/ShippingMethodRepository.java new file mode 100644 index 0000000..adac752 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/repo/ShippingMethodRepository.java @@ -0,0 +1,29 @@ +package me.gilo.woodroid.repo; + +import me.gilo.woodroid.callback.WooCall; +import me.gilo.woodroid.data.api.PaymentGatewayAPI; +import me.gilo.woodroid.data.api.ShippingMethodAPI; +import me.gilo.woodroid.models.PaymentGateway; +import me.gilo.woodroid.models.ShippingMethod; + +import java.util.List; + +public class ShippingMethodRepository extends WooRepository{ + + private final ShippingMethodAPI apiService; + + public ShippingMethodRepository(String baseUrl, String consumerKey, String consumerSecret) { + super( baseUrl, consumerKey, consumerSecret); + apiService = retrofit.create(ShippingMethodAPI.class); + } + + public WooCall shippingMethod(String id) { + return apiService.view(id); + } + + public WooCall> shippingMethods() { + return apiService.list(); + } + + +}