diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 2ed8e73..5eac64c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -9,10 +9,12 @@ diff --git a/app/build.gradle b/app/build.gradle index 63ae14f..115c573 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,9 +1,6 @@ apply plugin: 'com.android.application' - apply plugin: 'kotlin-android' - apply plugin: 'kotlin-android-extensions' - apply plugin: 'kotlin-kapt' android { diff --git a/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt b/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt index 80ab1a5..aaa21bb 100644 --- a/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt +++ b/app/src/main/java/me/gilo/woodroid/app/adapter/viewholder/OrderViewHolder.kt @@ -26,7 +26,7 @@ class OrderViewHolder(val context: Context, itemView: View) : tvTitle.text = "#" + order.orderNumber tvStatus.text = order.status - tvDate.text = DateUtils.getDateString_shortAndSmart(order.getDateCreated()) + tvDate.text = DateUtils.getDateString_shortAndSmart(order.dateCreated) tvPrice.text = SpannableString("Ksh${order.total}") diff --git a/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt b/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt index bdbe273..c693946 100644 --- a/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt +++ b/app/src/main/java/me/gilo/woodroid/app/repo/CartRepository.kt @@ -25,7 +25,7 @@ constructor() { private val cart: CollectionReference = FirebaseFirestore.getInstance() .collection("users") - .document(FirebaseAuth.getInstance().currentUser!!.uid) + .document(FirebaseAuth.getInstance().currentUser?.uid ?: "0") .collection("cart") fun cart(): QueryLiveData { diff --git a/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt b/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt index b8c5e62..97277b8 100644 --- a/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt +++ b/app/src/main/java/me/gilo/woodroid/app/ui/product/CartActivity.kt @@ -177,9 +177,9 @@ class CartActivity : WooDroidActivity() { } order.setLineItems(lineitems); - order.setBillingAddress(customer.billingAddress) - order.setShippingAddress(customer.shippingAddress) - order.setCustomer(customer) + order.billingAddress = customer.billingAddress + order.shippingAddress = customer.shippingAddress + order.customer = customer createOrder(order) } diff --git a/build.gradle b/build.gradle index 83d4ef5..2db2022 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,8 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { +buildscript { + ext.kotlin_version = '1.3.21' + ext.kotlin_version = '1.3.31' ext.kotlin_version = '1.3.31' repositories { @@ -9,7 +11,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:3.5.0-alpha08' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.2.0' // NOTE: Do not place your application dependencies here; they belong diff --git a/firebasecart/.gitignore b/firebasecart/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/firebasecart/.gitignore @@ -0,0 +1 @@ +/build diff --git a/firebasecart/build.gradle b/firebasecart/build.gradle new file mode 100644 index 0000000..9cda62f --- /dev/null +++ b/firebasecart/build.gradle @@ -0,0 +1,34 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +android { + compileSdkVersion 28 + + + defaultConfig { + minSdkVersion 15 + targetSdkVersion 28 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation 'com.android.support:appcompat-v7:28.0.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'com.android.support.test:runner:1.0.2' + androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' +} diff --git a/firebasecart/proguard-rules.pro b/firebasecart/proguard-rules.pro new file mode 100644 index 0000000..f1b4245 --- /dev/null +++ b/firebasecart/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/firebasecart/src/androidTest/java/me/gilo/woodroid/firebasecart/ExampleInstrumentedTest.kt b/firebasecart/src/androidTest/java/me/gilo/woodroid/firebasecart/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..ef1a2d6 --- /dev/null +++ b/firebasecart/src/androidTest/java/me/gilo/woodroid/firebasecart/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package me.gilo.woodroid.firebasecart + +import android.support.test.InstrumentationRegistry +import android.support.test.runner.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("me.gilo.woodroid.firebasecart.test", appContext.packageName) + } +} diff --git a/firebasecart/src/main/AndroidManifest.xml b/firebasecart/src/main/AndroidManifest.xml new file mode 100644 index 0000000..98d61fc --- /dev/null +++ b/firebasecart/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + diff --git a/firebasecart/src/main/res/values/strings.xml b/firebasecart/src/main/res/values/strings.xml new file mode 100644 index 0000000..bd5f29d --- /dev/null +++ b/firebasecart/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + FirebaseCart + diff --git a/firebasecart/src/test/java/me/gilo/woodroid/firebasecart/ExampleUnitTest.kt b/firebasecart/src/test/java/me/gilo/woodroid/firebasecart/ExampleUnitTest.kt new file mode 100644 index 0000000..9c77b07 --- /dev/null +++ b/firebasecart/src/test/java/me/gilo/woodroid/firebasecart/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package me.gilo.woodroid.firebasecart + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} diff --git a/settings.gradle b/settings.gradle index d23f552..04410b5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -include ':app', ':woodroid' +include ':app', ':woodroid', ':firebasecart' diff --git a/woodroid/src/main/java/me/gilo/woodroid/Builder.java b/woodroid/src/main/java/me/gilo/woodroid/Builder.java deleted file mode 100644 index 7ccf855..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/Builder.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid; - -import me.gilo.woodroid.data.ApiVersion; - -public class Builder { - private String siteUrl; - private ApiVersion apiVerion; - private String consumerKey; - private String consumerSecret; - - - public Builder() { - } - - public Builder setSiteUrl(String siteUrl) { - this.siteUrl = siteUrl; - return this; - } - - public Builder setApiVersion(ApiVersion apiVerion) { - this.apiVerion = apiVerion; - return this; - } - - public Builder setConsumerKey(String consumerKey) { - this.consumerKey = consumerKey; - return this; - } - - public Builder setConsumerSecret(String consumerSecret) { - this.consumerSecret = consumerSecret; - return this; - } - - - public Woocommerce build() { - return new Woocommerce(siteUrl, apiVerion, consumerKey, consumerSecret); - } -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/Builder.kt b/woodroid/src/main/java/me/gilo/woodroid/Builder.kt new file mode 100644 index 0000000..2a89a38 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/Builder.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid + +import me.gilo.woodroid.data.ApiVersion + + +class Builder { + private lateinit var siteUrl: String + private lateinit var apiVerion: ApiVersion + private lateinit var consumerKey: String + private lateinit var consumerSecret: String + + fun setSiteUrl(siteUrl: String): Builder { + this.siteUrl = siteUrl + return this + } + + fun setApiVersion(apiVerion: ApiVersion): Builder { + this.apiVerion = apiVerion + return this + } + + fun setConsumerKey(consumerKey: String): Builder { + this.consumerKey = consumerKey + return this + } + + fun setConsumerSecret(consumerSecret: String): Builder { + this.consumerSecret = consumerSecret + return this + } + + + fun build(): Woocommerce { + return Woocommerce(siteUrl, apiVerion, consumerKey, consumerSecret) + } +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java deleted file mode 100644 index 0b93ba9..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.java +++ /dev/null @@ -1,140 +0,0 @@ -package me.gilo.woodroid; - -import android.content.Context; -import android.util.Log; -import me.gilo.woodroid.data.ApiVersion; -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; -import me.gilo.woodroid.repo.product.*; -import org.json.JSONException; -import org.json.JSONObject; - -public class Woocommerce { - - public static final ApiVersion API_V1 = ApiVersion.API_VERSION1; - public static final ApiVersion API_V2 = ApiVersion.API_VERSION2; - public static final ApiVersion API_V3 = ApiVersion.API_VERSION3; - - private final OrderNoteRepository orderNoteRepository; - private final RefundRepository refundRepository; - private final AttributeRepository attributeRepository; - private final AttributeTermRepository attributeTermRepository; - private final CategoryRepository categoryRepository; - private final ShippingClassRepository shippingClassRepository; - private final TagRepository tagRepository; - private final VariationRepository variationRepository; - private final CouponRepository couponRepository; - private final CustomerRepository customerRepository; - private final OrderRepository orderRepository; - private final ProductRepository productRepository; - private final ReviewRepository reviewRepository; - private final ReportsRepository reportsRepository; - private final CartRepository cartRepository; - private final PaymentGatewayRepository paymentGatewayRepository; - private final SettingsRepository settingsRepository; - private final ShippingMethodRepository shippingMethodRepository; - - public static Builder Builder(){ - return new Builder(); - } - - public Woocommerce(String siteUrl, ApiVersion apiVerion, String consumerKey, String consumerSecret) { - String baseUrl = siteUrl + "/wp-json/wc/v" + apiVerion + "/"; - String cartBaseUrl = siteUrl + "/wp-json/wc/v" + 2 + "/"; - - orderNoteRepository = new OrderNoteRepository(baseUrl, consumerKey, consumerSecret); - refundRepository = new RefundRepository(baseUrl, consumerKey, consumerSecret); - attributeRepository = new AttributeRepository(baseUrl, consumerKey, consumerSecret); - attributeTermRepository = new AttributeTermRepository(baseUrl, consumerKey, consumerSecret); - categoryRepository = new CategoryRepository(baseUrl, consumerKey, consumerSecret); - shippingClassRepository = new ShippingClassRepository(baseUrl, consumerKey, consumerSecret); - tagRepository = new TagRepository(baseUrl, consumerKey, consumerSecret); - variationRepository = new VariationRepository(baseUrl, consumerKey, consumerSecret); - couponRepository = new CouponRepository(baseUrl, consumerKey, consumerSecret); - customerRepository = new CustomerRepository(baseUrl, consumerKey, consumerSecret); - orderRepository = new OrderRepository(baseUrl, consumerKey, consumerSecret); - productRepository = new ProductRepository(baseUrl, consumerKey, consumerSecret); - reportsRepository = new ReportsRepository(baseUrl, consumerKey, consumerSecret); - 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); - - } - - public OrderNoteRepository OrderNoteRepository() { - return orderNoteRepository; - } - - public RefundRepository RefundRepository() { - return refundRepository; - } - - public AttributeRepository AttributeRepository() { - return attributeRepository; - } - - public AttributeTermRepository AttributeTermRepository() { - return attributeTermRepository; - } - - public CategoryRepository CategoryRepository() { - return categoryRepository; - } - - public ShippingClassRepository ShippingClassRepository() { - return shippingClassRepository; - } - - public TagRepository TagRepository() { - return tagRepository; - } - - public VariationRepository VariationRepository() { - return variationRepository; - } - - public CouponRepository CouponRepository() { - return couponRepository; - } - - public CustomerRepository CustomerRepository() { - return customerRepository; - } - - public OrderRepository OrderRepository() { - return orderRepository; - } - - public ProductRepository ProductRepository() { - return productRepository; - } - - public ReviewRepository ReviewRepository() { - return reviewRepository; - } - - public ReportsRepository ReportsRepository() { - 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/Woocommerce.kt b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.kt new file mode 100644 index 0000000..111ffad --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/Woocommerce.kt @@ -0,0 +1,143 @@ +package me.gilo.woodroid + +import android.content.Context +import android.util.Log +import me.gilo.woodroid.data.ApiVersion +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 +import me.gilo.woodroid.repo.product.* +import org.json.JSONException +import org.json.JSONObject + +class Woocommerce(siteUrl: String, apiVerion: ApiVersion, consumerKey: String, consumerSecret: String) { + + private val orderNoteRepository: OrderNoteRepository + private val refundRepository: RefundRepository + private val attributeRepository: AttributeRepository + private val attributeTermRepository: AttributeTermRepository + private val categoryRepository: CategoryRepository + private val shippingClassRepository: ShippingClassRepository + private val tagRepository: TagRepository + private val variationRepository: VariationRepository + private val couponRepository: CouponRepository + private val customerRepository: CustomerRepository + private val orderRepository: OrderRepository + private val productRepository: ProductRepository + private val reviewRepository: ReviewRepository + private val reportsRepository: ReportsRepository + private val cartRepository: CartRepository + private val paymentGatewayRepository: PaymentGatewayRepository + private val settingsRepository: SettingsRepository + private val shippingMethodRepository: ShippingMethodRepository + + init { + val baseUrl = "$siteUrl/wp-json/wc/v$apiVerion/" + val cartBaseUrl = "$siteUrl/wp-json/wc/v2/" + + orderNoteRepository = OrderNoteRepository(baseUrl, consumerKey, consumerSecret) + refundRepository = RefundRepository(baseUrl, consumerKey, consumerSecret) + attributeRepository = AttributeRepository(baseUrl, consumerKey, consumerSecret) + attributeTermRepository = AttributeTermRepository(baseUrl, consumerKey, consumerSecret) + categoryRepository = CategoryRepository(baseUrl, consumerKey, consumerSecret) + shippingClassRepository = ShippingClassRepository(baseUrl, consumerKey, consumerSecret) + tagRepository = TagRepository(baseUrl, consumerKey, consumerSecret) + variationRepository = VariationRepository(baseUrl, consumerKey, consumerSecret) + couponRepository = CouponRepository(baseUrl, consumerKey, consumerSecret) + customerRepository = CustomerRepository(baseUrl, consumerKey, consumerSecret) + orderRepository = OrderRepository(baseUrl, consumerKey, consumerSecret) + productRepository = ProductRepository(baseUrl, consumerKey, consumerSecret) + reportsRepository = ReportsRepository(baseUrl, consumerKey, consumerSecret) + cartRepository = CartRepository(cartBaseUrl, consumerKey, consumerSecret) + reviewRepository = ReviewRepository(baseUrl, consumerKey, consumerSecret) + paymentGatewayRepository = PaymentGatewayRepository(baseUrl, consumerKey, consumerSecret) + settingsRepository = SettingsRepository(baseUrl, consumerKey, consumerSecret) + shippingMethodRepository = ShippingMethodRepository(baseUrl, consumerKey, consumerSecret) + + } + + fun OrderNoteRepository(): OrderNoteRepository { + return orderNoteRepository + } + + fun RefundRepository(): RefundRepository { + return refundRepository + } + + fun AttributeRepository(): AttributeRepository { + return attributeRepository + } + + fun AttributeTermRepository(): AttributeTermRepository { + return attributeTermRepository + } + + fun CategoryRepository(): CategoryRepository { + return categoryRepository + } + + fun ShippingClassRepository(): ShippingClassRepository { + return shippingClassRepository + } + + fun TagRepository(): TagRepository { + return tagRepository + } + + fun VariationRepository(): VariationRepository { + return variationRepository + } + + fun CouponRepository(): CouponRepository { + return couponRepository + } + + fun CustomerRepository(): CustomerRepository { + return customerRepository + } + + fun OrderRepository(): OrderRepository { + return orderRepository + } + + fun ProductRepository(): ProductRepository { + return productRepository + } + + fun ReviewRepository(): ReviewRepository { + return reviewRepository + } + + fun ReportsRepository(): ReportsRepository { + return reportsRepository + } + + fun PaymentGatewayRepository(): PaymentGatewayRepository { + return paymentGatewayRepository + } + + fun SettingsRepository(): SettingsRepository { + return settingsRepository + } + + fun ShippingMethodRepository(): ShippingMethodRepository { + return shippingMethodRepository + } + + fun CartRepository(context: Context): CartRepository { + cartRepository.turnOnCookies(context) + return cartRepository + } + + companion object { + + val API_V1 = ApiVersion.API_VERSION1 + val API_V2 = ApiVersion.API_VERSION2 + val API_V3 = ApiVersion.API_VERSION3 + + fun Builder(): Builder { + return Builder() + } + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.java b/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.java deleted file mode 100644 index 225603c..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.callback; - -import android.arch.lifecycle.LiveData; -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; - -import java.io.IOException; - -public class CallBackLiveData extends LiveData> implements Callback { - - public CallBackLiveData() { - setValue(new Resource<>(Status.LOADING)); - } - - @Override - public void onResponse(Call call, Response response) { - if (response.isSuccessful()){ - setValue(new Resource<>(response.body())); - }else{ - String error = null; - try { - error = response.errorBody().string(); - } catch (IOException e) { - e.printStackTrace(); - } - - if (error == null){ - error = "Something went wrong"; - } - setValue(new Resource<>(new NetworkException(error))); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - setValue(new Resource<>( new NetworkException(t))); - } -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.kt new file mode 100644 index 0000000..4a69844 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/callback/CallBackLiveData.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.callback + +import android.arch.lifecycle.LiveData +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + +import java.io.IOException + +class CallBackLiveData : LiveData>(), Callback { + init { + value = Resource(Status.LOADING) + } + + override fun onResponse(call: Call, response: Response) { + if (response.isSuccessful) { + setValue(Resource(response.body()!!)) + } else { + var error: String? = null + try { + error = response.errorBody()!!.string() + } catch (e: IOException) { + e.printStackTrace() + } + + if (error == null) { + error = "Something went wrong" + } + setValue(Resource(NetworkException(error))) + } + } + + override fun onFailure(call: Call, t: Throwable) { + value = Resource(NetworkException(t)) + } +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.java b/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.java deleted file mode 100644 index 3be2e40..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.java +++ /dev/null @@ -1,20 +0,0 @@ -package me.gilo.woodroid.callback; - -public class NetworkException extends Exception{ - - public NetworkException() { - super(); - } - - public NetworkException(String message) { - super(message); - } - - public NetworkException(String message, Throwable cause) { - super(message, cause); - } - - public NetworkException(Throwable cause) { - super(cause); - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.kt new file mode 100644 index 0000000..3834332 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/callback/NetworkException.kt @@ -0,0 +1,12 @@ +package me.gilo.woodroid.callback + +class NetworkException : Exception { + + constructor() : super() {} + + constructor(message: String) : super(message) {} + + constructor(message: String, cause: Throwable) : super(message, cause) {} + + constructor(cause: Throwable) : super(cause) {} +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.java b/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.java deleted file mode 100755 index 0dd25d8..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.java +++ /dev/null @@ -1,79 +0,0 @@ -package me.gilo.woodroid.callback; - -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.util.Log; - -import java.util.List; - - -@SuppressWarnings({"WeakerAccess", "ConstantConditions"}) -public final class Resource { - @Nullable - private final T data; - @Nullable - private final Exception error; - Status status = Status.LOADING; - - public Resource(@NonNull T data) { - this(data, null); - } - - public Resource(@NonNull Status status) { - this(null, null); - this.status = status; - } - - public Resource(@NonNull Exception exception) { - this(null, exception); - this.status = Status.ERROR; - } - - private Resource(@Nullable T value, @Nullable Exception error) { - this.data = value; - this.error = error; - - if (error != null){ - status = Status.ERROR; - }else if (data != null){ - if (data instanceof List){ - if (((List) data).size() == 0){ - status = Status.EMPTY; - }else { - status = status.SUCCESS; - } - }else { - status = Status.SUCCESS; - } - }else { - status = Status.LOADING; - } - } - - public boolean isSuccessful() { - return data != null && error == null; - } - - @NonNull - public T data() { - if (error != null) { - throw new IllegalStateException("error is not null. Call isSuccessful() first."); - } - return data; - } - - @NonNull - public Exception error() { - if (data != null) { - throw new IllegalStateException("data is not null. Call isSuccessful() first."); - } - return error; - } - - @NonNull - public Status status() { - return status; - } - - -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.kt new file mode 100755 index 0000000..784d38e --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/callback/Resource.kt @@ -0,0 +1,60 @@ +package me.gilo.woodroid.callback + +import android.util.Log + + +class Resource private constructor(private val data: T?, private val error: Exception?) { + internal var status = Status.LOADING + + val isSuccessful: Boolean + get() = data != null && error == null + + constructor(data: T) : this(data, null) {} + + constructor(status: Status) : this(null, null) { + this.status = status + } + + constructor(exception: Exception) : this(null, exception) { + this.status = Status.ERROR + } + + init { + + if (error != null) { + status = Status.ERROR + } else if (data != null) { + if (data is List<*>) { + if ((data as List<*>).size == 0) { + status = Status.EMPTY + } else { + status = status.SUCCESS + } + } else { + status = Status.SUCCESS + } + } else { + status = Status.LOADING + } + } + + fun data(): T { + if (error != null) { + throw IllegalStateException("error is not null. Call isSuccessful() first.") + } + return data + } + + fun error(): Exception { + if (data != null) { + throw IllegalStateException("data is not null. Call isSuccessful() first.") + } + return error + } + + fun status(): Status { + return status + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Status.java b/woodroid/src/main/java/me/gilo/woodroid/callback/Status.java deleted file mode 100644 index e78ff15..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/callback/Status.java +++ /dev/null @@ -1,12 +0,0 @@ -package me.gilo.woodroid.callback; - -public enum Status { - EMPTY, - SUCCESS, - ERROR, - LOADING; - - public Status isLoading(){ - return LOADING; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/Status.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/Status.kt new file mode 100644 index 0000000..dca3b19 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/callback/Status.kt @@ -0,0 +1,11 @@ +package me.gilo.woodroid.callback + +enum class Status { + EMPTY, + SUCCESS, + ERROR, + LOADING; + + val isLoading: Status + get() = LOADING +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java deleted file mode 100644 index ae1c2f9..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.java +++ /dev/null @@ -1,7 +0,0 @@ -package me.gilo.woodroid.callback; - -import retrofit2.Call; - -public interface WooCall extends Call { - -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.kt b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.kt new file mode 100644 index 0000000..da39d04 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/callback/WooCall.kt @@ -0,0 +1,5 @@ +package me.gilo.woodroid.callback + +import retrofit2.Call + +interface WooCall : Call diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.java b/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.java deleted file mode 100644 index 7b5c9bd..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.gilo.woodroid.data; - -public enum ApiVersion { - API_VERSION1{ - @Override - public String toString() { - return "1"; - } - }, - API_VERSION2{ - @Override - public String toString() { - return "2"; - } - }, - API_VERSION3{ - @Override - public String toString() { - return "3"; - } - }, -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.kt b/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.kt new file mode 100644 index 0000000..8ef6917 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/ApiVersion.kt @@ -0,0 +1,19 @@ +package me.gilo.woodroid.data + +enum class ApiVersion { + API_VERSION1 { + override fun toString(): String { + return "1" + } + }, + API_VERSION2 { + override fun toString(): String { + return "2" + } + }, + API_VERSION3 { + override fun toString(): String { + return "3" + } + } +} \ 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 deleted file mode 100644 index 0c66f79..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.java +++ /dev/null @@ -1,28 +0,0 @@ -package me.gilo.woodroid.data; - -import org.apache.http.NameValuePair; - -import java.util.ArrayList; - -public class RestAdapter { - - static String oauth_nonce = ""; - static String oauth_timestamp = ""; - static String oauth_signature_method = "HMAC-SHA1"; - - static ArrayList params; - - private String baseUrl; - private String consumerKey; - private String consumerSecret; - - public RestAdapter(String baseUrl, String consumerKey, String consumerSecret) { - this.baseUrl = baseUrl; - this.consumerKey = consumerKey; - this.consumerSecret = consumerSecret; - } - - - - -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.kt b/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.kt new file mode 100644 index 0000000..5096150 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/RestAdapter.kt @@ -0,0 +1,18 @@ +package me.gilo.woodroid.data + +import org.apache.http.NameValuePair + +import java.util.ArrayList + +class RestAdapter(private val baseUrl: String, private val consumerKey: String, private val consumerSecret: String) { + companion object { + + internal var oauth_nonce = "" + internal var oauth_timestamp = "" + internal var oauth_signature_method = "HMAC-SHA1" + + internal var params: ArrayList? = null + } + + +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java deleted file mode 100644 index f040349..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.java +++ /dev/null @@ -1,38 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import retrofit2.Call; -import me.gilo.woodroid.models.LineItem; -import me.gilo.woodroid.models.filters.CartFilter; -import retrofit2.http.*; - -import java.util.Map; - -public interface CartAPI { - - @Headers("Content-Type: application/json") - @POST("clear") - Call clear(); - - @GET("count-items") - Call count(); - - @GET("cart") - Call> list(); - - @Headers("Content-Type: application/json") - @POST("cart/add") - Call> addToCart(@Body LineItem body); - - @DELETE("cart/cart-item") - Call delete(@Body CartFilter body); - - @GET("cart/cart-item") - Call restore(@Body CartFilter body); - - @Headers("Content-Type: application/json") - @POST("cart/cart-item") - Call update(@Body CartFilter body); - - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.kt new file mode 100644 index 0000000..a9f0d3a --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/CartAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import retrofit2.Call +import me.gilo.woodroid.models.LineItem +import me.gilo.woodroid.models.filters.CartFilter +import retrofit2.http.* + +interface CartAPI { + + @Headers("Content-Type: application/json") + @POST("clear") + fun clear(): Call + + @GET("count-items") + fun count(): Call + + @GET("cart") + fun list(): Call> + + @Headers("Content-Type: application/json") + @POST("cart/add") + fun addToCart(@Body body: LineItem): Call> + + @DELETE("cart/cart-item") + fun delete(@Body body: CartFilter): Call + + @GET("cart/cart-item") + fun restore(@Body body: CartFilter): Call + + @Headers("Content-Type: application/json") + @POST("cart/cart-item") + fun update(@Body body: CartFilter): Call + + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.java deleted file mode 100644 index e7f6dbf..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Coupon; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface CouponAPI{ - - @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(); - - @GET("coupons") - Call> filter(@QueryMap Map filter); - - @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/CouponAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.kt new file mode 100644 index 0000000..899f4d6 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/CouponAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Coupon +import retrofit2.Call +import retrofit2.http.* + +interface CouponAPI { + + @Headers("Content-Type: application/json") + @POST("coupons") + fun create(@Body body: Coupon): Call + + @GET("coupons/{id}") + fun view(@Path("id") id: Int): Call + + @GET("coupons") + fun list(): Call> + + @GET("coupons") + fun filter(@QueryMap filter: Map): Call> + + @Headers("Content-Type: application/json") + @PUT("coupons/{id}") + fun update(@Path("id") id: Int, @Body body: Coupon): Call + + @DELETE("coupons/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("coupons/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("coupons/batch") + fun batch(@Body body: Coupon): Call + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.java deleted file mode 100644 index 150721a..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.java +++ /dev/null @@ -1,43 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Customer; -import me.gilo.woodroid.models.Download; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface CustomerAPI { - - @Headers("Content-Type: application/json") - @POST("customers") - Call create(@Body Customer body); - - @GET("customers/{id}") - Call view(@Path("id") int id); - - @GET("customers") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("customers/{id}") - Call update(@Path("id") int id, @Body Customer body); - - @DELETE("customers/{id}") - Call delete(@Path("id") int id); - - @DELETE("customers/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("customers/batch") - Call batch(@Body Customer body); - - @POST("customers/{id}/downloads") - Call> downloads(@Path("id") int id); - - @GET("customers") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.kt new file mode 100644 index 0000000..61f3949 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/CustomerAPI.kt @@ -0,0 +1,40 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Customer +import me.gilo.woodroid.models.Download +import retrofit2.Call +import retrofit2.http.* + +interface CustomerAPI { + + @Headers("Content-Type: application/json") + @POST("customers") + fun create(@Body body: Customer): Call + + @GET("customers/{id}") + fun view(@Path("id") id: Int): Call + + @GET("customers") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("customers/{id}") + fun update(@Path("id") id: Int, @Body body: Customer): Call + + @DELETE("customers/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("customers/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("customers/batch") + fun batch(@Body body: Customer): Call + + @POST("customers/{id}/downloads") + fun downloads(@Path("id") id: Int): Call> + + @GET("customers") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.java deleted file mode 100644 index 128ed11..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Order; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface OrderAPI { - - @Headers("Content-Type: application/json") - @POST("orders") - Call create(@Body Order body); - - @GET("orders/{id}") - Call view(@Path("id") int id); - - @GET("orders") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("orders/{id}") - Call update(@Path("id") int id, @Body Order body); - - @DELETE("orders/{id}") - Call delete(@Path("id") int id); - - @DELETE("orders/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("orders/batch") - Call batch(@Body Order body); - - @GET("orders") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.kt new file mode 100644 index 0000000..d42f59d --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Order +import retrofit2.Call +import retrofit2.http.* + +interface OrderAPI { + + @Headers("Content-Type: application/json") + @POST("orders") + fun create(@Body body: Order): Call + + @GET("orders/{id}") + fun view(@Path("id") id: Int): Call + + @GET("orders") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("orders/{id}") + fun update(@Path("id") id: Int, @Body body: Order): Call + + @DELETE("orders/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("orders/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("orders/batch") + fun batch(@Body body: Order): Call + + @GET("orders") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.java deleted file mode 100644 index d9e82df..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.OrderNote; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface OrderNoteAPI { - - @Headers("Content-Type: application/json") - @POST("orders/{id}/notes") - 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); - - @GET("orders/{id}/notes") - Call> list(@Path("id") int order_id); - - @DELETE("orders/{id}/notes/{note_id}") - Call delete(@Path("id") int order_id, @Path("note_id") int note_id); - - @DELETE("orders/{id}/notes/{note_id}") - Call delete(@Path("id") int order_id, @Path("note_id") int note_id, @Query("force") boolean force); - - @GET("orders/{id}/notes") - Call> filter(@Path("id") int order_id, @QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.kt new file mode 100644 index 0000000..eb6eb2f --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/OrderNoteAPI.kt @@ -0,0 +1,29 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.OrderNote +import retrofit2.Call +import retrofit2.http.* + +interface OrderNoteAPI { + + @Headers("Content-Type: application/json") + @POST("orders/{id}/notes") + fun create(@Path("id") order_id: Int, @Body body: OrderNote): Call + + @GET("orders/{id}/notes/{note_id}") + fun view(@Path("id") order_id: Int, @Path("note_id") note_id: Int): Call + + @GET("orders/{id}/notes") + fun list(@Path("id") order_id: Int): Call> + + @DELETE("orders/{id}/notes/{note_id}") + fun delete(@Path("id") order_id: Int, @Path("note_id") note_id: Int): Call + + @DELETE("orders/{id}/notes/{note_id}") + fun delete(@Path("id") order_id: Int, @Path("note_id") note_id: Int, @Query("force") force: Boolean): Call + + @GET("orders/{id}/notes") + fun filter(@Path("id") order_id: Int, @QueryMap filter: Map): Call> + +} \ No newline at end of file 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 deleted file mode 100644 index 16306cc..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/PaymentGatewayAPI.java +++ /dev/null @@ -1,23 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import retrofit2.Call; -import me.gilo.woodroid.models.PaymentGateway; -import retrofit2.http.*; - -import java.util.List; - -public interface PaymentGatewayAPI { - - - @GET("payment_gateways/{id}") - Call view(@Path("id") int id); - - @GET("payment_gateways") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("payment_gateways") - Call 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/PaymentGatewayAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/PaymentGatewayAPI.kt new file mode 100644 index 0000000..adf005d --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/PaymentGatewayAPI.kt @@ -0,0 +1,21 @@ +package me.gilo.woodroid.data.api + + +import retrofit2.Call +import me.gilo.woodroid.models.PaymentGateway +import retrofit2.http.* + +interface PaymentGatewayAPI { + + + @GET("payment_gateways/{id}") + fun view(@Path("id") id: Int): Call + + @GET("payment_gateways") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("payment_gateways") + fun update(@Path("id") id: String, @Body body: PaymentGateway): Call + +} \ 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 deleted file mode 100644 index af1580a..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.java +++ /dev/null @@ -1,57 +0,0 @@ -package me.gilo.woodroid.data.api; - - -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 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(); - - - @Headers("Content-Type: application/json") - @POST("products") - Call create(@Body Product body); - - @GET("products/{id}") - Call view(@Path("id") int id); - - @GET("products") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("products/{id}") - Call update(@Path("id") int id, @Body Product body); - - @DELETE("products/{id}") - Call delete(@Path("id") int id); - - @DELETE("products/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("products/batch") - Call batch(@Body Product body); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.kt new file mode 100644 index 0000000..12ebe8d --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAPI.kt @@ -0,0 +1,55 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Product +import retrofit2.Call +import retrofit2.http.* + +import java.util.ArrayList + +interface ProductAPI { + + + @get:GET("products") + val products: Call> + + @get:GET("products/count") + val productsCount: Call> + + @GET("products/{id}") + fun getProduct(@Path("id") id: Int): Call + + @GET("products") + fun getProducts(@Query("filter[category]") category: String): Call> + + @GET("products") + fun search(@Query("search") search: String): Call> + + @GET("products") + fun filter(@QueryMap filter: Map): Call> + + + @Headers("Content-Type: application/json") + @POST("products") + fun create(@Body body: Product): Call + + @GET("products/{id}") + fun view(@Path("id") id: Int): Call + + @GET("products") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("products/{id}") + fun update(@Path("id") id: Int, @Body body: Product): Call + + @DELETE("products/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("products/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("products/batch") + fun batch(@Body body: Product): Call + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.java deleted file mode 100644 index 878d2cb..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Attribute; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface ProductAttributeAPI { - - @Headers("Content-Type: application/json") - @POST("products/attributes") - Call create(@Body Attribute body); - - @GET("products/attributes/{id}") - Call view(@Path("id") int id); - - @GET("products/attributes") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("products/attributes/{id}") - Call update(@Path("id") int id, @Body Attribute body); - - @DELETE("products/attributes/{id}") - Call delete(@Path("id") int id); - - @DELETE("products/attributes/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("products/attributes/batch") - Call batch(@Body Attribute body); - - @GET("products/attributes") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.kt new file mode 100644 index 0000000..cf44760 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Attribute +import retrofit2.Call +import retrofit2.http.* + +interface ProductAttributeAPI { + + @Headers("Content-Type: application/json") + @POST("products/attributes") + fun create(@Body body: Attribute): Call + + @GET("products/attributes/{id}") + fun view(@Path("id") id: Int): Call + + @GET("products/attributes") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("products/attributes/{id}") + fun update(@Path("id") id: Int, @Body body: Attribute): Call + + @DELETE("products/attributes/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("products/attributes/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("products/attributes/batch") + fun batch(@Body body: Attribute): Call + + @GET("products/attributes") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java deleted file mode 100644 index 1060e25..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.AttributeTerm; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface ProductAttributeTermAPI { - - @Headers("Content-Type: application/json") - @POST("products/attributes/{id}/terms") - Call create(@Path("id") int attribute_id, @Body AttributeTerm body); - - @GET("products/attributes/{id}/terms/[term_id]") - Call view(@Path("id") int attribute_id, @Path("term_id") int term_id); - - @GET("products/attributes/{id}/terms") - Call> list(@Path("id") int attribute_id); - - @Headers("Content-Type: application/json") - @PUT("products/attributes/{id}/terms/[term_id]") - Call update(@Path("id") int attribute_id, @Path("term_id") int term_id, @Body AttributeTerm body); - - @DELETE("products/attributes/{id}/terms/[term_id]") - Call delete(@Path("id") int attribute_id, @Path("term_id") int term_id); - - @DELETE("products/attributes/{id}/terms/[term_id]") - Call delete(@Path("id") int attribute_id, @Path("term_id") int term_id, @Query("force") boolean force); - - @POST("products/attributes/batch") - Call batch(@Body AttributeTerm body); - - @GET("products/attributes/{id}/terms") - Call> filter(@Path("id") int attribute_id, @QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.kt new file mode 100644 index 0000000..e3d9e89 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductAttributeTermAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.AttributeTerm +import retrofit2.Call +import retrofit2.http.* + +interface ProductAttributeTermAPI { + + @Headers("Content-Type: application/json") + @POST("products/attributes/{id}/terms") + fun create(@Path("id") attribute_id: Int, @Body body: AttributeTerm): Call + + @GET("products/attributes/{id}/terms/[term_id]") + fun view(@Path("id") attribute_id: Int, @Path("term_id") term_id: Int): Call + + @GET("products/attributes/{id}/terms") + fun list(@Path("id") attribute_id: Int): Call> + + @Headers("Content-Type: application/json") + @PUT("products/attributes/{id}/terms/[term_id]") + fun update(@Path("id") attribute_id: Int, @Path("term_id") term_id: Int, @Body body: AttributeTerm): Call + + @DELETE("products/attributes/{id}/terms/[term_id]") + fun delete(@Path("id") attribute_id: Int, @Path("term_id") term_id: Int): Call + + @DELETE("products/attributes/{id}/terms/[term_id]") + fun delete(@Path("id") attribute_id: Int, @Path("term_id") term_id: Int, @Query("force") force: Boolean): Call + + @POST("products/attributes/batch") + fun batch(@Body body: AttributeTerm): Call + + @GET("products/attributes/{id}/terms") + fun filter(@Path("id") attribute_id: Int, @QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.java deleted file mode 100644 index 3b35a22..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Category; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface ProductCategoryAPI { - - @Headers("Content-Type: application/json") - @POST("products/categories") - Call create(@Body Category body); - - @GET("products/categories/{id}") - Call view(@Path("id") int id); - - @GET("products/categories") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("products/categories/{id}") - Call update(@Path("id") int id, @Body Category body); - - @DELETE("products/categories/{id}") - Call delete(@Path("id") int id); - - @DELETE("products/categories/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("products/categories/batch") - Call batch(@Body Category body); - - @GET("products/categories") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.kt new file mode 100644 index 0000000..9ae0fdf --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductCategoryAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Category +import retrofit2.Call +import retrofit2.http.* + +interface ProductCategoryAPI { + + @Headers("Content-Type: application/json") + @POST("products/categories") + fun create(@Body body: Category): Call + + @GET("products/categories/{id}") + fun view(@Path("id") id: Int): Call + + @GET("products/categories") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("products/categories/{id}") + fun update(@Path("id") id: Int, @Body body: Category): Call + + @DELETE("products/categories/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("products/categories/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("products/categories/batch") + fun batch(@Body body: Category): Call + + @GET("products/categories") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.java deleted file mode 100644 index 7a25a68..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.ProductReview; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface ProductReviewAPI { - - @Headers("Content-Type: application/json") - @POST("products/reviews") - Call create(@Body ProductReview body); - - @GET("products/reviews/{id}") - Call view(@Path("id") int id); - - @GET("products/reviews") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("products/reviews/{id}") - Call update(@Path("id") int id, @Body ProductReview body); - - @DELETE("products/reviews/{id}") - Call delete(@Path("id") int id); - - @DELETE("products/reviews/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("products/reviews/batch") - Call batch(@Body ProductReview body); - - @GET("products/reviews") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.kt new file mode 100644 index 0000000..f2eac29 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductReviewAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.ProductReview +import retrofit2.Call +import retrofit2.http.* + +interface ProductReviewAPI { + + @Headers("Content-Type: application/json") + @POST("products/reviews") + fun create(@Body body: ProductReview): Call + + @GET("products/reviews/{id}") + fun view(@Path("id") id: Int): Call + + @GET("products/reviews") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("products/reviews/{id}") + fun update(@Path("id") id: Int, @Body body: ProductReview): Call + + @DELETE("products/reviews/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("products/reviews/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("products/reviews/batch") + fun batch(@Body body: ProductReview): Call + + @GET("products/reviews") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.java deleted file mode 100644 index 4310e51..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Tag; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface ProductTagAPI { - - @Headers("Content-Type: application/json") - @POST("products/tags") - Call create(@Body Tag body); - - @GET("products/tags/{id}") - Call view(@Path("id") int id); - - @GET("products/tags") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("products/tags/{id}") - Call update(@Path("id") int id, @Body Tag body); - - @DELETE("products/tags/{id}") - Call delete(@Path("id") int id); - - @DELETE("products/tags/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("products/tags/batch") - Call batch(@Body Tag body); - - @GET("products/tags") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.kt new file mode 100644 index 0000000..1d5b516 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductTagAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Tag +import retrofit2.Call +import retrofit2.http.* + +interface ProductTagAPI { + + @Headers("Content-Type: application/json") + @POST("products/tags") + fun create(@Body body: Tag): Call + + @GET("products/tags/{id}") + fun view(@Path("id") id: Int): Call + + @GET("products/tags") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("products/tags/{id}") + fun update(@Path("id") id: Int, @Body body: Tag): Call + + @DELETE("products/tags/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("products/tags/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("products/tags/batch") + fun batch(@Body body: Tag): Call + + @GET("products/tags") + fun filter(@QueryMap filter: Map): Call> + +} \ 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 deleted file mode 100644 index 13b9ae5..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.java +++ /dev/null @@ -1,41 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Product; -import me.gilo.woodroid.models.Variation; -import retrofit2.Call; -import retrofit2.http.*; - -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("products/{id}/variations") - Call> filter(@Path("id") int product_id, @QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.kt new file mode 100644 index 0000000..852a3b7 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ProductVariationAPI.kt @@ -0,0 +1,38 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Product +import me.gilo.woodroid.models.Variation +import retrofit2.Call +import retrofit2.http.* + +interface ProductVariationAPI { + + @Headers("Content-Type: application/json") + @POST("products/{id}/variations") + fun create(@Path("id") product_id: Int, @Body body: Variation): Call + + @GET("products/{id}/variations/{variation_id}") + fun view(@Path("id") product_id: Int, @Path("variation_id") variation_id: Int): Call + + @GET("products/{id}/variations") + fun list(@Path("id") product_id: Int): Call> + + @Headers("Content-Type: application/json") + @PUT("products/{id}/variations/{variation_id}") + fun update(@Path("id") product_id: Int, @Path("variation_id") variation_id: Int, @Body body: Variation): Call + + @DELETE("products/{id}/variations/{variation_id}") + fun delete(@Path("id") product_id: Int, @Path("variation_id") variation_id: Int): Call + + @DELETE("products/{id}/variations/{variation_id}") + fun delete(@Path("id") product_id: Int, @Path("variation_id") variation_id: Int, @Query("force") force: Boolean): Call + + @Headers("Content-Type: application/json") + @PUT("products/{id}/variations/{variation_id}") + fun batch(@Path("id") product_id: Int, @Path("variation_id") variation_id: Int, @Body body: Product): Call + + @GET("products/{id}/variations") + fun filter(@Path("id") product_id: Int, @QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.java deleted file mode 100644 index f54730e..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Refund; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface RefundAPI { - - @Headers("Content-Type: application/json") - @POST("orders/{id}/refunds") - 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); - - @GET("orders/{id}/refunds") - Call> list(@Path("id") int order_id); - - @DELETE("orders/{id}/refunds/{refund_id}") - Call delete(@Path("id") int order_id, @Path("refund_id") int refund_id); - - @DELETE("orders/{id}/refunds/{refund_id}") - Call delete(@Path("id") int order_id, @Path("refund_id") int refund_id, @Query("force") boolean force); - - @GET("orders/{id}/refunds") - Call> filter(@Path("id") int order_id, @QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.kt new file mode 100644 index 0000000..0394262 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/RefundAPI.kt @@ -0,0 +1,29 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Refund +import retrofit2.Call +import retrofit2.http.* + +interface RefundAPI { + + @Headers("Content-Type: application/json") + @POST("orders/{id}/refunds") + fun create(@Path("id") order_id: Int, @Body body: Refund): Call + + @GET("orders/{id}/refunds/{refund_id}") + fun view(@Path("id") order_id: Int, @Path("refund_id") refund_id: Int): Call + + @GET("orders/{id}/refunds") + fun list(@Path("id") order_id: Int): Call> + + @DELETE("orders/{id}/refunds/{refund_id}") + fun delete(@Path("id") order_id: Int, @Path("refund_id") refund_id: Int): Call + + @DELETE("orders/{id}/refunds/{refund_id}") + fun delete(@Path("id") order_id: Int, @Path("refund_id") refund_id: Int, @Query("force") force: Boolean): Call + + @GET("orders/{id}/refunds") + fun filter(@Path("id") order_id: Int, @QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ReportAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ReportAPI.java deleted file mode 100644 index 32fa2a9..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ReportAPI.java +++ /dev/null @@ -1,45 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.report.*; -import retrofit2.Call; -import retrofit2.http.GET; -import retrofit2.http.QueryMap; - -import java.util.List; -import java.util.Map; - -public interface ReportAPI { - - @GET("reports/sales") - Call> sales(); - - @GET("reports/sales") - Call> sales(@QueryMap Map filter); - - - @GET("reports/top_sellers") - Call> top_sellers(); - - @GET(" /wp-json/wc/v3/reports/top_sellers") - Call> top_sellers(@QueryMap Map filter); - - - @GET("reports/coupons/totals") - Call> coupons_totals(); - - - @GET("reports/customers/totals") - Call> customers_totals(); - - - @GET("reports/orders/totals") - Call> orders_totals(); - - @GET("reports/products/totals") - Call> products_totals(); - - @GET("reports/reviews/totals") - Call> reviews_totals(); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ReportAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ReportAPI.kt new file mode 100644 index 0000000..674e31e --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ReportAPI.kt @@ -0,0 +1,42 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.report.* +import retrofit2.Call +import retrofit2.http.GET +import retrofit2.http.QueryMap + +interface ReportAPI { + + @GET("reports/sales") + fun sales(): Call> + + @GET("reports/sales") + fun sales(@QueryMap filter: Map): Call> + + + @GET("reports/top_sellers") + fun top_sellers(): Call> + + @GET(" /wp-json/wc/v3/reports/top_sellers") + fun top_sellers(@QueryMap filter: Map): Call> + + + @GET("reports/coupons/totals") + fun coupons_totals(): Call> + + + @GET("reports/customers/totals") + fun customers_totals(): Call> + + + @GET("reports/orders/totals") + fun orders_totals(): Call> + + @GET("reports/products/totals") + fun products_totals(): Call> + + @GET("reports/reviews/totals") + fun reviews_totals(): Call> + +} \ 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 deleted file mode 100644 index 049e743..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import retrofit2.Call; -import me.gilo.woodroid.models.SettingGroup; -import me.gilo.woodroid.models.SettingOption; -import retrofit2.http.*; - -import java.util.List; - -public interface SettingsAPI { - - @GET("settings") - Call> settings(); - - @GET("settings/{group_id}/{id}") - Call option(@Path("group_id") String group_id, @Path("id") String option_id); - - @GET("settings/{id}") - Call> options(@Path("id") String group_id); - - @Headers("Content-Type: application/json") - @PUT("settings/{group_id}/{id}") - Call update( - @Path("group_id") String group_id, - @Path("id") String option_id, - @Body SettingOption body - ); - - - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.kt new file mode 100644 index 0000000..ed9390e --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/SettingsAPI.kt @@ -0,0 +1,29 @@ +package me.gilo.woodroid.data.api + + +import retrofit2.Call +import me.gilo.woodroid.models.SettingGroup +import me.gilo.woodroid.models.SettingOption +import retrofit2.http.* + +interface SettingsAPI { + + @GET("settings") + fun settings(): Call> + + @GET("settings/{group_id}/{id}") + fun option(@Path("group_id") group_id: String, @Path("id") option_id: String): Call + + @GET("settings/{id}") + fun options(@Path("id") group_id: String): Call> + + @Headers("Content-Type: application/json") + @PUT("settings/{group_id}/{id}") + fun update( + @Path("group_id") group_id: String, + @Path("id") option_id: String, + @Body body: SettingOption + ): Call + + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.java deleted file mode 100644 index aceb6ce..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.java +++ /dev/null @@ -1,39 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.ShippingClass; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.List; -import java.util.Map; - -public interface ShippingClassAPI { - - @Headers("Content-Type: application/json") - @POST("products/shipping_classes") - Call create(@Body ShippingClass body); - - @GET("products/shipping_classes/{id}") - Call view(@Path("id") int id); - - @GET("products/shipping_classes") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("products/shipping_classes/{id}") - Call update(@Path("id") int id, @Body ShippingClass body); - - @DELETE("products/shipping_classes/{id}") - Call delete(@Path("id") int id); - - @DELETE("products/shipping_classes/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @POST("products/shipping_classes/batch") - Call batch(@Body ShippingClass body); - - @GET("products/shipping_classes") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.kt new file mode 100644 index 0000000..e31b277 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingClassAPI.kt @@ -0,0 +1,36 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.ShippingClass +import retrofit2.Call +import retrofit2.http.* + +interface ShippingClassAPI { + + @Headers("Content-Type: application/json") + @POST("products/shipping_classes") + fun create(@Body body: ShippingClass): Call + + @GET("products/shipping_classes/{id}") + fun view(@Path("id") id: Int): Call + + @GET("products/shipping_classes") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("products/shipping_classes/{id}") + fun update(@Path("id") id: Int, @Body body: ShippingClass): Call + + @DELETE("products/shipping_classes/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("products/shipping_classes/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("products/shipping_classes/batch") + fun batch(@Body body: ShippingClass): Call + + @GET("products/shipping_classes") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file 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 deleted file mode 100644 index 06713be..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.java +++ /dev/null @@ -1,19 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import retrofit2.Call; -import me.gilo.woodroid.models.ShippingMethod; -import retrofit2.http.GET; -import retrofit2.http.Path; - -import java.util.List; - -public interface ShippingMethodAPI { - - @GET("shipping_methods/{id}") - Call view(@Path("id") String id); - - @GET("shipping_methods") - Call> list(); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.kt new file mode 100644 index 0000000..9982615 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingMethodAPI.kt @@ -0,0 +1,17 @@ +package me.gilo.woodroid.data.api + + +import retrofit2.Call +import me.gilo.woodroid.models.ShippingMethod +import retrofit2.http.GET +import retrofit2.http.Path + +interface ShippingMethodAPI { + + @GET("shipping_methods/{id}") + fun view(@Path("id") id: String): Call + + @GET("shipping_methods") + fun list(): Call> + +} \ 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 deleted file mode 100644 index 89aa173..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneAPI.java +++ /dev/null @@ -1,40 +0,0 @@ -package me.gilo.woodroid.data.api; - - -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/api/ShippingZoneAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneAPI.kt new file mode 100644 index 0000000..00a43b0 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneAPI.kt @@ -0,0 +1,38 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.ShippingZone +import retrofit2.Call +import retrofit2.http.* + +import java.util.ArrayList + +interface ShippingZoneAPI { + + @Headers("Content-Type: application/json") + @POST("shipping/zones") + fun create(@Body body: ShippingZone): Call + + @GET("shipping/zones/{id}") + fun view(@Path("id") id: Int): Call + + @GET("shipping/zones") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("shipping/zones/{id}") + fun update(@Path("id") id: Int, @Body body: ShippingZone): Call + + @DELETE("shipping/zones/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("shipping/zones/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("shipping/zones/batch") + fun batch(@Body body: ShippingZone): Call + + @GET("coupons") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.java deleted file mode 100644 index 20a2fc6..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.java +++ /dev/null @@ -1,40 +0,0 @@ -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 { - - @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); - - @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/ShippingZoneLocationAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.kt new file mode 100644 index 0000000..381961d --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/ShippingZoneLocationAPI.kt @@ -0,0 +1,38 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Coupon +import retrofit2.Call +import retrofit2.http.* + +import java.util.ArrayList + +interface ShippingZoneLocationAPI { + + @Headers("Content-Type: application/json") + @POST("coupons") + fun create(@Body body: Coupon): Call + + @GET("coupons/{id}") + fun view(@Path("id") id: Int): Call + + @GET("coupons") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("coupons/{id}") + fun update(@Path("id") id: Int, @Body body: Coupon): Call + + @DELETE("coupons/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("coupons/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("coupons/batch") + fun batch(@Body body: Coupon): Call + + @GET("coupons") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.java deleted file mode 100644 index 91d23d2..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.java +++ /dev/null @@ -1,30 +0,0 @@ -package me.gilo.woodroid.data.api; - - -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 { - - @Headers("Content-Type: application/json") - @POST("taxes/classes") - Call create(@Body TaxClass body); - - @GET("taxes/classes") - Call> list(); - - @DELETE("taxes/classes/{id}") - Call delete(@Path("id") int id); - - @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/api/TaxClassAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.kt new file mode 100644 index 0000000..8e29436 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxClassAPI.kt @@ -0,0 +1,28 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.TaxClass +import retrofit2.Call +import retrofit2.http.* + +import java.util.ArrayList + +interface TaxClassAPI { + + @Headers("Content-Type: application/json") + @POST("taxes/classes") + fun create(@Body body: TaxClass): Call + + @GET("taxes/classes") + fun list(): Call> + + @DELETE("taxes/classes/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("taxes/classes/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @GET("coupons") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.java deleted file mode 100644 index 34d385e..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.java +++ /dev/null @@ -1,40 +0,0 @@ -package me.gilo.woodroid.data.api; - - -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 { - - @Headers("Content-Type: application/json") - @POST("taxes") - Call create(@Body TaxRate body); - - @GET("taxes/{id}") - Call view(@Path("id") int id); - - @GET("taxes") - Call> list(); - - @Headers("Content-Type: application/json") - @PUT("taxes/{id}") - Call update(@Path("id") int id, @Body TaxRate body); - - @DELETE("taxes/{id}") - Call delete(@Path("id") int id); - - @DELETE("taxes/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @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/data/api/TaxRateAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.kt new file mode 100644 index 0000000..8a7cc27 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/TaxRateAPI.kt @@ -0,0 +1,38 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.TaxRate +import retrofit2.Call +import retrofit2.http.* + +import java.util.ArrayList + +interface TaxRateAPI { + + @Headers("Content-Type: application/json") + @POST("taxes") + fun create(@Body body: TaxRate): Call + + @GET("taxes/{id}") + fun view(@Path("id") id: Int): Call + + @GET("taxes") + fun list(): Call> + + @Headers("Content-Type: application/json") + @PUT("taxes/{id}") + fun update(@Path("id") id: Int, @Body body: TaxRate): Call + + @DELETE("taxes/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("taxes/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @POST("taxes/batch") + fun batch(@Body body: TaxRate): Call + + @GET("coupons") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/WebhookAPI.java b/woodroid/src/main/java/me/gilo/woodroid/data/api/WebhookAPI.java deleted file mode 100644 index c92f1b7..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/api/WebhookAPI.java +++ /dev/null @@ -1,44 +0,0 @@ -package me.gilo.woodroid.data.api; - - -import me.gilo.woodroid.models.Webhook; -import me.gilo.woodroid.models.WebhookDelivery; -import retrofit2.Call; -import retrofit2.http.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public interface WebhookAPI { - - @Headers("Content-Type: application/json") - @POST("webhooks") - Call create(@Body Webhook body); - - @GET("webhooks") - Call> list(); - - @GET("webhooks/{id}") - Call view(@Path("id") int id); - - @GET("webhooks/{id}/deliveries/{delivery_id}") - Call delivery(@Path("id") int webhook_id, @Path("delivery_id") int delivery_id); - - @GET("webhooks/{id}/deliveries") - Call> deliveries(@Path("id") int webhook_id); - - @Headers("Content-Type: application/json") - @PUT("webhooks/{id}") - Call update(@Path("id") int id, @Body Webhook body); - - @DELETE("webhooks/{id}") - Call delete(@Path("id") int id); - - @DELETE("webhooks/{id}") - Call delete(@Path("id") int id, @Query("force") boolean force); - - @GET("webhooks") - Call> filter(@QueryMap Map filter); - -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/api/WebhookAPI.kt b/woodroid/src/main/java/me/gilo/woodroid/data/api/WebhookAPI.kt new file mode 100644 index 0000000..d7b4755 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/api/WebhookAPI.kt @@ -0,0 +1,42 @@ +package me.gilo.woodroid.data.api + + +import me.gilo.woodroid.models.Webhook +import me.gilo.woodroid.models.WebhookDelivery +import retrofit2.Call +import retrofit2.http.* + +import java.util.ArrayList + +interface WebhookAPI { + + @Headers("Content-Type: application/json") + @POST("webhooks") + fun create(@Body body: Webhook): Call + + @GET("webhooks") + fun list(): Call> + + @GET("webhooks/{id}") + fun view(@Path("id") id: Int): Call + + @GET("webhooks/{id}/deliveries/{delivery_id}") + fun delivery(@Path("id") webhook_id: Int, @Path("delivery_id") delivery_id: Int): Call + + @GET("webhooks/{id}/deliveries") + fun deliveries(@Path("id") webhook_id: Int): Call> + + @Headers("Content-Type: application/json") + @PUT("webhooks/{id}") + fun update(@Path("id") id: Int, @Body body: Webhook): Call + + @DELETE("webhooks/{id}") + fun delete(@Path("id") id: Int): Call + + @DELETE("webhooks/{id}") + fun delete(@Path("id") id: Int, @Query("force") force: Boolean): Call + + @GET("webhooks") + fun filter(@QueryMap filter: Map): Call> + +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/auth/AlphabeticSorter.java b/woodroid/src/main/java/me/gilo/woodroid/data/auth/AlphabeticSorter.java deleted file mode 100644 index 4b08638..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/auth/AlphabeticSorter.java +++ /dev/null @@ -1,13 +0,0 @@ -package me.gilo.woodroid.data.auth; - -import org.apache.http.NameValuePair; - -import java.util.Comparator; - -public class AlphabeticSorter implements Comparator { - - @Override - public int compare(NameValuePair nameValuePair1, NameValuePair nameValuePair2) { - return nameValuePair1.getName().compareTo(nameValuePair2.getName()); - } -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/auth/AlphabeticSorter.kt b/woodroid/src/main/java/me/gilo/woodroid/data/auth/AlphabeticSorter.kt new file mode 100644 index 0000000..b19c3df --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/auth/AlphabeticSorter.kt @@ -0,0 +1,12 @@ +package me.gilo.woodroid.data.auth + +import org.apache.http.NameValuePair + +import java.util.Comparator + +class AlphabeticSorter : Comparator { + + override fun compare(nameValuePair1: NameValuePair, nameValuePair2: NameValuePair): Int { + return nameValuePair1.name.compareTo(nameValuePair2.name) + } +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/auth/AuthIntercepter.java b/woodroid/src/main/java/me/gilo/woodroid/data/auth/AuthIntercepter.java deleted file mode 100644 index 4952f30..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/auth/AuthIntercepter.java +++ /dev/null @@ -1,173 +0,0 @@ -package me.gilo.woodroid.data.auth; - -import android.util.Base64; -import android.util.Log; -import okhttp3.HttpUrl; -import okhttp3.Interceptor; -import okhttp3.Request; -import okhttp3.Response; -import org.apache.http.NameValuePair; -import org.apache.http.client.utils.URLEncodedUtils; -import org.apache.http.message.BasicNameValuePair; - -import javax.crypto.Mac; -import javax.crypto.spec.SecretKeySpec; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.net.URLEncoder; -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.util.*; - -public class AuthIntercepter implements Interceptor { - - - static String oauth_nonce = ""; - static String oauth_timestamp = ""; - static String oauth_signature_method = "HMAC-SHA1"; - private String oauth_signature = ""; - - private String consumerKey; - private String consumerSecret; - - - public AuthIntercepter(String consumerKey, String consumerSecret) { - this.consumerKey = consumerKey; - this.consumerSecret = consumerSecret; - } - - - @Override - public Response intercept(Chain chain) throws IOException { - ArrayList params = getOauthParams(chain); - - HttpUrl.Builder builder = chain.request().url().newBuilder(); - for (NameValuePair entry : params) { - builder.addQueryParameter(entry.getName(), entry.getValue()); - } - - Request newRequest = chain.request() - .newBuilder() - .url(builder.build()) - .header("Accept", "application/json") - .build(); - - return chain.proceed(newRequest); - } - - public ArrayList getOauthParams(Chain chain) { - ArrayList params = new ArrayList<>(); - - String request_url = chain.request().url().toString(); - - Iterator iterator = getQueryParams(request_url).entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry pair = (Map.Entry)iterator.next(); - - String key = (String) pair.getKey(); - List values = (List) pair.getValue(); - String value = ""; - - //why there would be multiple values for single key is not so clear to me, will keep this here though - if (values.size() == 1){ - value = values.get(0); - } - - params.add(new BasicNameValuePair(key, value)); - - iterator.remove(); - } - - if (request_url.contains("?")){ - int request_url_end = request_url.indexOf("?"); - request_url = request_url.substring(0, request_url_end); - } - - oauth_nonce = getOauth_nonce(); - oauth_timestamp = getOauth_timestamp(); - - params.add(new BasicNameValuePair("oauth_consumer_key", consumerKey)); - params.add(new BasicNameValuePair("oauth_nonce", oauth_nonce)); - params.add(new BasicNameValuePair("oauth_timestamp", oauth_timestamp)); - params.add(new BasicNameValuePair("oauth_signature_method", oauth_signature_method)); - - Collections.sort(params, new AlphabeticSorter()); - String encodedParams = URLEncodedUtils.format(params, "utf-8"); - oauth_signature = getOauth_signature(chain.request().method(), request_url, consumerSecret, encodedParams ); - - params.add(new BasicNameValuePair("oauth_signature", oauth_signature)); - - return params; - } - - public String getOauth_nonce() { - return (new StringBuilder(String.valueOf(Math.random() * 100000000D))).toString(); - } - - public String getStringToSign(String method, String url, String parameters) { - String string_to_sign = ""; - try { - string_to_sign = (new StringBuilder(method + "&")) - .append(URLEncoder.encode(url, "utf-8")).append("&") - .append(URLEncoder.encode(parameters, "utf-8")) - .toString(); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - - return string_to_sign; - } - - - public String getOauth_signature(String method, String url, String consumerSecret, String parameters) { - String signature = ""; - String string_to_sign = getStringToSign(method, url, parameters); - - try { - Mac mac = Mac.getInstance(oauth_signature_method); - String secret = consumerSecret + "&"; - mac.init(new SecretKeySpec(secret.getBytes("utf-8"), oauth_signature_method)); - signature = Base64.encodeToString(mac.doFinal(string_to_sign.getBytes("utf-8")), 0).trim(); - } catch (NoSuchAlgorithmException | InvalidKeyException | UnsupportedEncodingException e) { - e.printStackTrace(); - } - - return signature; - } - - - public String getOauth_timestamp() { - long stamp = (long) (System.currentTimeMillis() / 1000D); - return (new StringBuilder(String.valueOf(stamp))).toString(); - } - - public static Map> getQueryParams(String url) { - try { - Map> params = new HashMap>(); - String[] urlParts = url.split("\\?"); - if (urlParts.length > 1) { - String query = urlParts[1]; - for (String param : query.split("&")) { - String[] pair = param.split("="); - String key = URLDecoder.decode(pair[0], "UTF-8"); - String value = ""; - if (pair.length > 1) { - value = URLDecoder.decode(pair[1], "UTF-8"); - } - - List values = params.get(key); - if (values == null) { - values = new ArrayList(); - params.put(key, values); - } - values.add(value); - } - } - - return params; - } catch (UnsupportedEncodingException ex) { - throw new AssertionError(ex); - } - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/auth/AuthIntercepter.kt b/woodroid/src/main/java/me/gilo/woodroid/data/auth/AuthIntercepter.kt new file mode 100644 index 0000000..2472c0b --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/auth/AuthIntercepter.kt @@ -0,0 +1,174 @@ +package me.gilo.woodroid.data.auth + +import android.util.Base64 +import android.util.Log +import okhttp3.HttpUrl +import okhttp3.Interceptor +import okhttp3.Request +import okhttp3.Response +import org.apache.http.NameValuePair +import org.apache.http.client.utils.URLEncodedUtils +import org.apache.http.message.BasicNameValuePair + +import javax.crypto.Mac +import javax.crypto.spec.SecretKeySpec +import java.io.IOException +import java.io.UnsupportedEncodingException +import java.net.URLDecoder +import java.net.URLEncoder +import java.security.InvalidKeyException +import java.security.NoSuchAlgorithmException +import java.util.* +import java.util.Map + +class AuthIntercepter(private val consumerKey: String, private val consumerSecret: String) : Interceptor { + private var oauth_signature = "" + + + @Throws(IOException::class) + override fun intercept(chain: Interceptor.Chain): Response { + val params = getOauthParams(chain) + + val builder = chain.request().url().newBuilder() + for (entry in params) { + builder.addQueryParameter(entry.name, entry.value) + } + + val newRequest = chain.request() + .newBuilder() + .url(builder.build()) + .header("Accept", "application/json") + .build() + + return chain.proceed(newRequest) + } + + fun getOauthParams(chain: Interceptor.Chain): ArrayList { + val params = ArrayList() + + var request_url = chain.request().url().toString() + + val iterator = getQueryParams(request_url).entries.iterator() + while (iterator.hasNext()) { + val pair = iterator.next() as Map.Entry<*, *> + + val key = pair.key as String + val values = pair.value as List + var value = "" + + //why there would be multiple values for single key is not so clear to me, will keep this here though + if (values.size == 1) { + value = values[0] + } + + params.add(BasicNameValuePair(key, value)) + + iterator.remove() + } + + if (request_url.contains("?")) { + val request_url_end = request_url.indexOf("?") + request_url = request_url.substring(0, request_url_end) + } + + oauth_nonce = getOauth_nonce() + oauth_timestamp = getOauth_timestamp() + + params.add(BasicNameValuePair("oauth_consumer_key", consumerKey)) + params.add(BasicNameValuePair("oauth_nonce", oauth_nonce)) + params.add(BasicNameValuePair("oauth_timestamp", oauth_timestamp)) + params.add(BasicNameValuePair("oauth_signature_method", oauth_signature_method)) + + Collections.sort(params, AlphabeticSorter()) + val encodedParams = URLEncodedUtils.format(params, "utf-8") + oauth_signature = getOauth_signature(chain.request().method(), request_url, consumerSecret, encodedParams) + + params.add(BasicNameValuePair("oauth_signature", oauth_signature)) + + return params + } + + fun getOauth_nonce(): String { + return StringBuilder((Math.random() * 100000000.0).toString()).toString() + } + + fun getStringToSign(method: String, url: String, parameters: String): String { + var string_to_sign = "" + try { + string_to_sign = StringBuilder("$method&") + .append(URLEncoder.encode(url, "utf-8")).append("&") + .append(URLEncoder.encode(parameters, "utf-8")) + .toString() + } catch (e: UnsupportedEncodingException) { + e.printStackTrace() + } + + return string_to_sign + } + + + fun getOauth_signature(method: String, url: String, consumerSecret: String, parameters: String): String { + var signature = "" + val string_to_sign = getStringToSign(method, url, parameters) + + try { + val mac = Mac.getInstance(oauth_signature_method) + val secret = "$consumerSecret&" + mac.init(SecretKeySpec(secret.toByteArray(charset("utf-8")), oauth_signature_method)) + signature = + Base64.encodeToString(mac.doFinal(string_to_sign.toByteArray(charset("utf-8"))), 0).trim { it <= ' ' } + } catch (e: NoSuchAlgorithmException) { + e.printStackTrace() + } catch (e: InvalidKeyException) { + e.printStackTrace() + } catch (e: UnsupportedEncodingException) { + e.printStackTrace() + } + + return signature + } + + + fun getOauth_timestamp(): String { + val stamp = (System.currentTimeMillis() / 1000.0).toLong() + return StringBuilder(stamp.toString()).toString() + } + + companion object { + + + internal var oauth_nonce = "" + internal var oauth_timestamp = "" + internal var oauth_signature_method = "HMAC-SHA1" + + fun getQueryParams(url: String): MutableMap> { + try { + val params = HashMap>() + val urlParts = url.split("\\?".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() + if (urlParts.size > 1) { + val query = urlParts[1] + for (param in query.split("&".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()) { + val pair = param.split("=".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray() + val key = URLDecoder.decode(pair[0], "UTF-8") + var value = "" + if (pair.size > 1) { + value = URLDecoder.decode(pair[1], "UTF-8") + } + + var values: MutableList? = params[key]?.toMutableList() + if (values == null) { + values = ArrayList() + params[key] = values + } + values.add(value) + } + } + + return params + } catch (ex: UnsupportedEncodingException) { + throw AssertionError(ex) + } + + } + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CategoriesCallback.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CategoriesCallback.java deleted file mode 100644 index eb87c28..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CategoriesCallback.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - - -import com.google.gson.annotations.SerializedName; -import me.gilo.woodroid.models.Category; - - -import java.util.ArrayList; - - -public class CategoriesCallback { - @SerializedName("product_categories") - ArrayList categories; - - public ArrayList getCategories() { - return categories; - } - - public void setCategories(ArrayList categories) { - this.categories = categories; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CategoriesCallback.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CategoriesCallback.kt new file mode 100644 index 0000000..afce783 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CategoriesCallback.kt @@ -0,0 +1,14 @@ +package me.gilo.woodroid.data.callbacks + + +import com.google.gson.annotations.SerializedName +import me.gilo.woodroid.models.Category + + +import java.util.ArrayList + + +class CategoriesCallback { + @SerializedName("product_categories") + lateinit var categories: ArrayList +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CustomerData.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CustomerData.java deleted file mode 100644 index 1a6523c..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CustomerData.java +++ /dev/null @@ -1,16 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - - -import me.gilo.woodroid.models.Customer; - -public class CustomerData { - Customer customer; - - public Customer getCustomer() { - return customer; - } - - public void setCustomer(Customer customer) { - this.customer = customer; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CustomerData.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CustomerData.kt new file mode 100644 index 0000000..c229ff0 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/CustomerData.kt @@ -0,0 +1,8 @@ +package me.gilo.woodroid.data.callbacks + + +import me.gilo.woodroid.models.Customer + +class CustomerData { + lateinit var customer: Customer +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/Data.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/Data.java deleted file mode 100644 index 2bbd948..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/Data.java +++ /dev/null @@ -1,14 +0,0 @@ -package me.gilo.woodroid.data.callbacks; -import me.gilo.woodroid.models.Order; - -public class Data { - Order order; - - public Order getOrder() { - return order; - } - - public void setOrder(Order order) { - this.order = order; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/Data.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/Data.kt new file mode 100644 index 0000000..dbad33c --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/Data.kt @@ -0,0 +1,7 @@ +package me.gilo.woodroid.data.callbacks + +import me.gilo.woodroid.models.Order + +class Data { + lateinit var order: Order +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/OrderCallback.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/OrderCallback.java deleted file mode 100644 index 722462f..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/OrderCallback.java +++ /dev/null @@ -1,19 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - - -import me.gilo.woodroid.models.Order; - -import java.util.ArrayList; - - -public class OrderCallback { - ArrayList orders = new ArrayList<>(); - - public ArrayList getOrders() { - return orders; - } - - public void setOrders(ArrayList orders) { - this.orders = orders; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/OrderCallback.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/OrderCallback.kt new file mode 100644 index 0000000..bbbb5a9 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/OrderCallback.kt @@ -0,0 +1,11 @@ +package me.gilo.woodroid.data.callbacks + + +import me.gilo.woodroid.models.Order + +import java.util.ArrayList + + +class OrderCallback { + var orders = ArrayList() +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductCallback.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductCallback.java deleted file mode 100644 index 2b0f861..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductCallback.java +++ /dev/null @@ -1,28 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - - -import me.gilo.woodroid.models.Product; - -import java.util.ArrayList; - - -public class ProductCallback { - ArrayList products = new ArrayList<>(); - Product product; - - public ArrayList getProducts() { - return products; - } - - public void setProducts(ArrayList products) { - this.products = products; - } - - public Product getProduct() { - return product; - } - - public void setProduct(Product product) { - this.product = product; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductCallback.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductCallback.kt new file mode 100644 index 0000000..527b53a --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductCallback.kt @@ -0,0 +1,12 @@ +package me.gilo.woodroid.data.callbacks + + +import me.gilo.woodroid.models.Product + +import java.util.ArrayList + + +class ProductCallback { + var products = ArrayList() + lateinit var product: Product +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductData.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductData.java deleted file mode 100644 index ba3551e..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductData.java +++ /dev/null @@ -1,16 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - - -import me.gilo.woodroid.models.Product; - -public class ProductData { - private Product product; - - public Product getProduct() { - return product; - } - - public void setProduct(Product product) { - this.product = product; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductData.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductData.kt new file mode 100644 index 0000000..5716c8b --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ProductData.kt @@ -0,0 +1,8 @@ +package me.gilo.woodroid.data.callbacks + + +import me.gilo.woodroid.models.Product + +class ProductData { + var product: Product? = null +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsCallback.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsCallback.java deleted file mode 100644 index d634eab..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsCallback.java +++ /dev/null @@ -1,22 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - - -import com.google.gson.annotations.SerializedName; -import me.gilo.woodroid.models.ProductReview; - -import java.util.ArrayList; - - - -public class ReviewsCallback { - @SerializedName("product_reviews") - ArrayList productReviews; - - public ArrayList getProductReviews() { - return productReviews; - } - - public void setProductReviews(ArrayList productReviews) { - this.productReviews = productReviews; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsCallback.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsCallback.kt new file mode 100644 index 0000000..ba26a00 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsCallback.kt @@ -0,0 +1,13 @@ +package me.gilo.woodroid.data.callbacks + + +import com.google.gson.annotations.SerializedName +import me.gilo.woodroid.models.ProductReview + +import java.util.ArrayList + + +class ReviewsCallback { + @SerializedName("product_reviews") + lateinit var productReviews: ArrayList +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsData.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsData.java deleted file mode 100644 index b97346c..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsData.java +++ /dev/null @@ -1,19 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - - -import me.gilo.woodroid.models.ProductReview; - -import java.util.ArrayList; - - -public class ReviewsData { - ArrayList productReviews; - - public ArrayList getProductReviews() { - return productReviews; - } - - public void setProductReviews(ArrayList productReviews) { - this.productReviews = productReviews; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsData.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsData.kt new file mode 100644 index 0000000..031dde2 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/ReviewsData.kt @@ -0,0 +1,11 @@ +package me.gilo.woodroid.data.callbacks + + +import me.gilo.woodroid.models.ProductReview + +import java.util.ArrayList + + +class ReviewsData { + lateinit var productReviews: ArrayList +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/StoreCallback.java b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/StoreCallback.java deleted file mode 100644 index e6bedcd..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/StoreCallback.java +++ /dev/null @@ -1,18 +0,0 @@ -package me.gilo.woodroid.data.callbacks; - -import com.google.gson.annotations.SerializedName; -import me.gilo.woodroid.models.Store; - -public class StoreCallback { - - @SerializedName("store") - Store store; - - public Store getStore() { - return store; - } - - public void setStore(Store store) { - this.store = store; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/StoreCallback.kt b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/StoreCallback.kt new file mode 100644 index 0000000..291ae59 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/callbacks/StoreCallback.kt @@ -0,0 +1,10 @@ +package me.gilo.woodroid.data.callbacks + +import com.google.gson.annotations.SerializedName +import me.gilo.woodroid.models.Store + +class StoreCallback { + + @SerializedName("store") + lateinit var store: Store +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/AddCookiesInterceptor.java b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/AddCookiesInterceptor.java deleted file mode 100644 index 5febf80..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/AddCookiesInterceptor.java +++ /dev/null @@ -1,32 +0,0 @@ -package me.gilo.woodroid.data.cookie; - -import android.content.Context; -import android.preference.PreferenceManager; -import okhttp3.Interceptor; -import okhttp3.Request; -import okhttp3.Response; - -import java.io.IOException; -import java.util.HashSet; - -public class AddCookiesInterceptor implements Interceptor { - - public static final String PREF_COOKIES = "PREF_COOKIES"; - private Context context; - - public AddCookiesInterceptor(Context context) { - this.context = context; - } - - @Override - public Response intercept(Interceptor.Chain chain) throws IOException { - Request.Builder builder = chain.request().newBuilder(); - - HashSet preferences = (HashSet) PreferenceManager.getDefaultSharedPreferences(context).getStringSet(PREF_COOKIES, new HashSet()); - for (String cookie : preferences) { - builder.addHeader("Cookie", cookie); - } - - return chain.proceed(builder.build()); - } -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/AddCookiesInterceptor.kt b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/AddCookiesInterceptor.kt new file mode 100644 index 0000000..2982997 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/AddCookiesInterceptor.kt @@ -0,0 +1,33 @@ +package me.gilo.woodroid.data.cookie + +import android.content.Context +import android.preference.PreferenceManager +import okhttp3.Interceptor +import okhttp3.Request +import okhttp3.Response + +import java.io.IOException +import java.util.HashSet + +class AddCookiesInterceptor(private val context: Context) : Interceptor { + + @Throws(IOException::class) + override fun intercept(chain: Interceptor.Chain): Response { + val builder = chain.request().newBuilder() + + val preferences = PreferenceManager.getDefaultSharedPreferences(context).getStringSet( + PREF_COOKIES, + HashSet() + ) as HashSet + for (cookie in preferences) { + builder.addHeader("Cookie", cookie) + } + + return chain.proceed(builder.build()) + } + + companion object { + + val PREF_COOKIES = "PREF_COOKIES" + } +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.java b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.java deleted file mode 100644 index 98a1f6c..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.java +++ /dev/null @@ -1,24 +0,0 @@ -package me.gilo.woodroid.data.cookie; - -import okhttp3.Interceptor; -import okhttp3.Request; -import okhttp3.Response; - -import java.io.IOException; - -public class DemoCookieInterceptor implements Interceptor { - - - @Override - public Response intercept(Interceptor.Chain chain) throws IOException { - Request.Builder builder = chain.request().newBuilder(); - - builder.addHeader("Cookie", "wordpress_logged_in_9073cf57240df660c1e240d327cc46cb=gilo%7C1551794958%7CJx1NTnn0f6wuYlN5a0PmTJxYcPlr1sUUqpr659EKCcG%7C802c643a30a82bf7aa6350b5fb5dd005c019b2e1b1d59566ef0c426e33126eae"); - builder.addHeader("Cookie", "woocommerce_cart_hash=d9ec6c9bf0d307629c2a981362735284"); - builder.addHeader("Cookie", "wp_woocommerce_session_9073cf57240df660c1e240d327cc46cb=1%7C%7C1551796439%7C%7C1551792839%7C%7Ce6deec897575a9a84bb4a672abf2ed72"); - - - - return chain.proceed(builder.build()); - } -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.kt b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.kt new file mode 100644 index 0000000..268ad90 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/DemoCookieInterceptor.kt @@ -0,0 +1,30 @@ +package me.gilo.woodroid.data.cookie + +import okhttp3.Interceptor +import okhttp3.Request +import okhttp3.Response + +import java.io.IOException + +class DemoCookieInterceptor : Interceptor { + + + @Throws(IOException::class) + override fun intercept(chain: Interceptor.Chain): Response { + val builder = chain.request().newBuilder() + + builder.addHeader( + "Cookie", + "wordpress_logged_in_9073cf57240df660c1e240d327cc46cb=gilo%7C1551794958%7CJx1NTnn0f6wuYlN5a0PmTJxYcPlr1sUUqpr659EKCcG%7C802c643a30a82bf7aa6350b5fb5dd005c019b2e1b1d59566ef0c426e33126eae" + ) + builder.addHeader("Cookie", "woocommerce_cart_hash=d9ec6c9bf0d307629c2a981362735284") + builder.addHeader( + "Cookie", + "wp_woocommerce_session_9073cf57240df660c1e240d327cc46cb=1%7C%7C1551796439%7C%7C1551792839%7C%7Ce6deec897575a9a84bb4a672abf2ed72" + ) + + + + return chain.proceed(builder.build()) + } +} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/ReceivedCookiesInterceptor.java b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/ReceivedCookiesInterceptor.java deleted file mode 100644 index 8b51f7f..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/ReceivedCookiesInterceptor.java +++ /dev/null @@ -1,37 +0,0 @@ -package me.gilo.woodroid.data.cookie; - -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import okhttp3.Interceptor; -import okhttp3.Response; - -import java.io.IOException; -import java.util.HashSet; - -public class ReceivedCookiesInterceptor implements Interceptor { - - private Context context; - public ReceivedCookiesInterceptor(Context context) { - this.context = context; - } - - @Override - public Response intercept(Chain chain) throws IOException { - Response originalResponse = chain.proceed(chain.request()); - - if (!originalResponse.headers("Set-Cookie").isEmpty()) { - HashSet cookies = (HashSet) PreferenceManager.getDefaultSharedPreferences(context).getStringSet("PREF_COOKIES", new HashSet()); - - for (String header : originalResponse.headers("Set-Cookie")) { - cookies.add(header); - } - - SharedPreferences.Editor memes = PreferenceManager.getDefaultSharedPreferences(context).edit(); - memes.putStringSet("PREF_COOKIES", cookies).apply(); - memes.commit(); - } - - return originalResponse; - } -} \ No newline at end of file diff --git a/woodroid/src/main/java/me/gilo/woodroid/data/cookie/ReceivedCookiesInterceptor.kt b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/ReceivedCookiesInterceptor.kt new file mode 100644 index 0000000..0945016 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/data/cookie/ReceivedCookiesInterceptor.kt @@ -0,0 +1,35 @@ +package me.gilo.woodroid.data.cookie + +import android.content.Context +import android.content.SharedPreferences +import android.preference.PreferenceManager +import okhttp3.Interceptor +import okhttp3.Response + +import java.io.IOException +import java.util.HashSet + +class ReceivedCookiesInterceptor(private val context: Context) : Interceptor { + + @Throws(IOException::class) + override fun intercept(chain: Interceptor.Chain): Response { + val originalResponse = chain.proceed(chain.request()) + + if (!originalResponse.headers("Set-Cookie").isEmpty()) { + val cookies = PreferenceManager.getDefaultSharedPreferences(context).getStringSet( + "PREF_COOKIES", + HashSet() + ) as HashSet + + for (header in originalResponse.headers("Set-Cookie")) { + cookies.add(header) + } + + val memes = PreferenceManager.getDefaultSharedPreferences(context).edit() + memes.putStringSet("PREF_COOKIES", cookies).apply() + memes.commit() + } + + return originalResponse + } +} \ 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 deleted file mode 100644 index 46a0151..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.java +++ /dev/null @@ -1,79 +0,0 @@ -package me.gilo.woodroid.models; - -import java.io.Serializable; - -public class Attribute implements Serializable { - int id; - private String name; - private String slug; - private String type; - private int position; - private boolean visible; - private boolean variation; - private String[] options; - - - 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 String getSlug() { - return slug; - } - - public void setSlug(String slug) { - this.slug = slug; - } - - public int getPosition() { - return position; - } - - public void setPosition(int position) { - this.position = position; - } - - public boolean isVisible() { - return visible; - } - - public void setVisible(boolean visible) { - this.visible = visible; - } - - public boolean isVariation() { - return variation; - } - - public void setVariation(boolean variation) { - this.variation = variation; - } - - public String[] getOptions() { - return options; - } - - public void setOptions(String[] options) { - this.options = options; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.kt b/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.kt new file mode 100644 index 0000000..46fab38 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/Attribute.kt @@ -0,0 +1,14 @@ +package me.gilo.woodroid.models + +import java.io.Serializable + +class Attribute : Serializable { + var id: Int = 0 + var name: String? = null + var slug: String? = null + var type: String? = null + var position: Int = 0 + var isVisible: Boolean = false + var isVariation: Boolean = false + var options: Array? = null +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/AttributeTerm.java b/woodroid/src/main/java/me/gilo/woodroid/models/AttributeTerm.java deleted file mode 100644 index 796b571..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/models/AttributeTerm.java +++ /dev/null @@ -1,63 +0,0 @@ -package me.gilo.woodroid.models; - -import android.os.Parcel; - -import java.io.Serializable; - - -public class AttributeTerm implements Serializable { - int id; - private String name; - private String slug; - String description; - int menu_order; - int count; - - 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 String getSlug() { - return slug; - } - - public void setSlug(String slug) { - this.slug = slug; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public int getMenu_order() { - return menu_order; - } - - public void setMenu_order(int menu_order) { - this.menu_order = menu_order; - } - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/AttributeTerm.kt b/woodroid/src/main/java/me/gilo/woodroid/models/AttributeTerm.kt new file mode 100644 index 0000000..c8c863b --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/AttributeTerm.kt @@ -0,0 +1,15 @@ +package me.gilo.woodroid.models + +import android.os.Parcel + +import java.io.Serializable + + +class AttributeTerm : Serializable { + var id: Int = 0 + var name: String? = null + var slug: String? = null + lateinit var description: String + var menu_order: Int = 0 + var count: Int = 0 +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/BillingAddress.java b/woodroid/src/main/java/me/gilo/woodroid/models/BillingAddress.java deleted file mode 100644 index 3d35799..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/models/BillingAddress.java +++ /dev/null @@ -1,130 +0,0 @@ -package me.gilo.woodroid.models; - -import com.google.gson.annotations.SerializedName; - -import java.io.Serializable; - -public class BillingAddress implements Serializable{ - public int id; - @SerializedName("first_name") - public String firstName; - @SerializedName("last_name") - public String lastName; - public String company; - @SerializedName("address_1") - public String address1; - @SerializedName("address_2") - public String address2; - public String city; - public String state; - public String postcode; - public String country; - public String email; - public String phone; - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getFirstName() { - return firstName; - } - - public void setFirstName(String firstName) { - this.firstName = firstName; - } - - public String getLastName() { - return lastName; - } - - public void setLastName(String lastName) { - this.lastName = lastName; - } - - public String getCompany() { - return company; - } - - public void setCompany(String company) { - this.company = company; - } - - public String getAddress1() { - return address1; - } - - public void setAddress1(String address1) { - this.address1 = address1; - } - - public String getAddress2() { - return address2; - } - - public void setAddress2(String address2) { - this.address2 = address2; - } - - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - public String getState() { - return state; - } - - public void setState(String state) { - this.state = state; - } - - public String getPostcode() { - return postcode; - } - - public void setPostcode(String postcode) { - this.postcode = postcode; - } - - public String getCountry() { - return country; - } - - public void setCountry(String country) { - this.country = country; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getPhone() { - return phone; - } - - public void setPhone(String phone) { - this.phone = phone; - } - - @Override - public String toString() { - return firstName + " " + lastName + "\n" - + address1 + " " + address2 + "\n" - + city + ", " + state + " " + postcode + "\n" - + country + "\n" - + phone - ; - } -} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/BillingAddress.kt b/woodroid/src/main/java/me/gilo/woodroid/models/BillingAddress.kt new file mode 100644 index 0000000..c09c447 --- /dev/null +++ b/woodroid/src/main/java/me/gilo/woodroid/models/BillingAddress.kt @@ -0,0 +1,32 @@ +package me.gilo.woodroid.models + +import com.google.gson.annotations.SerializedName + +import java.io.Serializable + +class BillingAddress : Serializable { + var id: Int = 0 + @SerializedName("first_name") + var firstName: String + @SerializedName("last_name") + var lastName: String + var company: String + @SerializedName("address_1") + var address1: String + @SerializedName("address_2") + var address2: String + var city: String + var state: String + var postcode: String + var country: String + var email: String + var phone: String + + override fun toString(): String { + return (firstName + " " + lastName + "\n" + + address1 + " " + address2 + "\n" + + city + ", " + state + " " + postcode + "\n" + + country + "\n" + + phone) + } +} diff --git a/woodroid/src/main/java/me/gilo/woodroid/models/CartItem.java b/woodroid/src/main/java/me/gilo/woodroid/models/CartItem.java deleted file mode 100644 index d83bbc6..0000000 --- a/woodroid/src/main/java/me/gilo/woodroid/models/CartItem.java +++ /dev/null @@ -1,36 +0,0 @@ -package me.gilo.woodroid.models; - -import java.util.ArrayList; - -/** - * Created by gilo on 2/18/16. - */ -public class CartItem { - Product product; - ArrayList