added payments, settings and shipping methods into the api

This commit is contained in:
Gilbert Kimutai 2019-04-07 09:48:58 +03:00
parent cf671d332e
commit 688433d9e6
12 changed files with 385 additions and 27 deletions

View File

@ -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;

View File

@ -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<T> extends Call<T> {
}

View File

@ -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<T> implements Callback<T> {
@Override
public void onResponse(Call<T> call, Response<T> response) {
}
@Override
public void onFailure(Call<T> call, Throwable t) {
}
}

View File

@ -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<PaymentGateway> view(@Path("id") int id);
@GET("payment_gateways")
WooCall<List<PaymentGateway>> list();
@Headers("Content-Type: application/json")
@PUT("payment_gateways")
WooCall<PaymentGateway> update(@Path("id") String id, @Body PaymentGateway body);
}

View File

@ -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<List<SettingGroup>> settings();
WooCall<List<SettingGroup>> settings();
@GET("settings/{group_id}/{id}")
Call<SettingOption> option(@Path("group_id") int group_id, @Path("id") int option_id);
WooCall<SettingOption> option(@Path("group_id") String group_id, @Path("id") String option_id);
@GET("settings/{id}")
Call<List<SettingOption>> options(@Path("id") int group_id);
WooCall<List<SettingOption>> options(@Path("id") String group_id);
@Headers("Content-Type: application/json")
@GET("settings/{group_id}/{id}")
Call<SettingOption> update(@Path("group_id") int group_id, @Path("id") int option_id);
@PUT("settings/{group_id}/{id}")
WooCall<SettingOption> update(
@Path("group_id") String group_id,
@Path("id") String option_id,
@Body SettingOption body
);

View File

@ -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<ShippingMethod> view(@Path("id") String id);
@GET("shipping_methods")
WooCall<List<ShippingMethod>> list();
}

View File

@ -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<String, PaymentGatewaySetting> 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<String, PaymentGatewaySetting> getSettings() {
return settings;
}
public void setSettings(Map<String, PaymentGatewaySetting> settings) {
this.settings = settings;
}
}

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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> paymentGateway(int id) {
return apiService.view(id);
}
public WooCall<List<PaymentGateway>> paymentGateways() {
return apiService.list();
}
public WooCall<PaymentGateway> update(String id, PaymentGateway paymentGateway) {
return apiService.update(id, paymentGateway);
}
}

View File

@ -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<List<SettingGroup>> settings() {
return apiService.settings();
}
public WooCall<SettingOption> option(String group_id, String option_id) {
return apiService.option(group_id, option_id);
}
public WooCall<List<SettingOption>> options(String group_id) {
return apiService.options(group_id);
}
public WooCall<SettingOption> updateOption(String group_id, String option_id, SettingOption option) {
return apiService.update(group_id, option_id, option);
}
}

View File

@ -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> shippingMethod(String id) {
return apiService.view(id);
}
public WooCall<List<ShippingMethod>> shippingMethods() {
return apiService.list();
}
}