From 845cffa47c7f96bc099c7283463903794ea6eee5 Mon Sep 17 00:00:00 2001 From: dani Date: Fri, 22 Mar 2024 12:38:31 +0200 Subject: [PATCH 1/2] refactor(health-sdk): Added missing documentation, fixed some typos IPC-114 --- .../gini/android/core/api/DocumentManager.kt | 2 +- .../net/gini/android/core/api/MediaTypes.java | 5 ++++- .../net/gini/android/core/api/Resource.kt | 2 +- .../core/api/internal/GiniCoreAPIBuilder.kt | 13 +++++++++++++ .../net/gini/android/core/api/models/Box.java | 5 +++++ .../core/api/models/CompoundExtraction.java | 2 ++ .../android/core/api/models/Document.java | 4 ++++ .../android/core/api/models/Extraction.java | 8 ++++++++ .../core/api/models/SpecificExtraction.java | 4 ++++ .../health/api/GiniHealthAPIBuilder.kt | 4 ++-- .../net/gini/android/health/sdk/GiniHealth.kt | 2 +- .../health/sdk/review/ReviewFragment.kt | 2 +- .../sdk/review/model/ExtractionResult.kt | 19 +++++++++++++++++++ .../health/sdk/review/model/PaymentDetails.kt | 5 ++++- 14 files changed, 69 insertions(+), 8 deletions(-) diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/DocumentManager.kt b/core-api-library/library/src/main/java/net/gini/android/core/api/DocumentManager.kt index c4c5baaa20..1e642da50e 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/DocumentManager.kt +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/DocumentManager.kt @@ -9,7 +9,7 @@ import net.gini.android.core.api.models.SpecificExtraction import org.json.JSONObject /** - * The [DocumentManager] is a high level API on top of the Gini API, which is used via the [DocumentRepository]. It + * The [DocumentManager] is a high level API on top of the Gini API, via which the [DocumentRepository] is used. It * provides high level methods to handle document related tasks easily. */ abstract class DocumentManager, E: ExtractionsContainer>(private val documentRepository: DR) { diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java b/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java index fc39563e79..8b055f5902 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java @@ -1,9 +1,12 @@ package net.gini.android.core.api; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; +/** + * Media Types used across the application (e.g document types, http headers) + */ + public class MediaTypes { public static final String IMAGE_JPEG = "image/jpeg"; diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/Resource.kt b/core-api-library/library/src/main/java/net/gini/android/core/api/Resource.kt index af35b376d4..b97ea15e89 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/Resource.kt +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/Resource.kt @@ -4,7 +4,7 @@ import net.gini.android.core.api.requests.ApiException import java.util.concurrent.CancellationException /** - * Represents a requested API resource. Resources can be requested successfully, with an error or they can be cancelled. + * Represents a requested API resource. Resource requests can be returned successfully, with an error or they can be cancelled. */ sealed class Resource( open val data: T? = null, diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/internal/GiniCoreAPIBuilder.kt b/core-api-library/library/src/main/java/net/gini/android/core/api/internal/GiniCoreAPIBuilder.kt index 79f2bc8935..97453da585 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/internal/GiniCoreAPIBuilder.kt +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/internal/GiniCoreAPIBuilder.kt @@ -36,6 +36,16 @@ import javax.net.ssl.SSLContext import javax.net.ssl.SSLSocketFactory import javax.net.ssl.TrustManager +/** + * The [GiniCoreAPIBuilder] allows you to build and configure a [GiniCoreAPI] instance. + * + * @constructor Initializes a new builder instance. + * @param context your application's Context instance (Android) + * @param clientId your application's client ID for the Gini Health API + * @param clientSecret your application's client secret for the Gini Health API + * @param emailDomain the email domain which is used for created Gini users + * @param sessionManager if not null, then the [SessionManager] instance will be used for session management. If null, then anonymous Gini users will be used. + */ abstract class GiniCoreAPIBuilder, G : GiniCoreAPI, DR : DocumentRepository, E : ExtractionsContainer>( private val context: Context, private val clientId: String, @@ -107,6 +117,9 @@ abstract class GiniCoreAPIBuilder, G : GiniCoreAPI { + + /** + * Request completed successfully and extractions were returned. + */ class Success(val value: T) : ResultWrapper() + + /** + * Request was unable to complete - returns the cause of the error + */ class Error(val error: Throwable) : ResultWrapper() + + /** + * Request did not complete yet. + */ class Loading : ResultWrapper() } diff --git a/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/PaymentDetails.kt b/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/PaymentDetails.kt index be71d00bff..8fc86a391d 100644 --- a/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/PaymentDetails.kt +++ b/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/PaymentDetails.kt @@ -8,6 +8,9 @@ import net.gini.android.core.api.models.SpecificExtraction import net.gini.android.health.sdk.review.error.NoPaymentDataExtracted import net.gini.android.health.sdk.util.toBackendFormat +/** + * Represents the payment details of an invoice as extracted from a document. + */ @Parcelize data class PaymentDetails( val recipient: String, @@ -44,7 +47,7 @@ internal fun String.toAmount(): String { /** * Checks if the document is payable which looks for iban extraction. */ -val PaymentDetails.isPayable get() = iban.isNotEmpty() +val PaymentDetails.isPayable get() = iban.isNotEmpty() // It appears this is not used anymore - we could remove it at a later stage (would remove it from the documentation as well) internal fun MutableMap.withFeedback(paymentDetails: PaymentDetails): Map { this["payment"] = this["payment"].let { payment -> From c2a8dee4ccd53887f39f009abada15eed48fdb24 Mon Sep 17 00:00:00 2001 From: dani Date: Tue, 26 Mar 2024 09:15:49 +0200 Subject: [PATCH 2/2] refactor(health-sdk): Addressed code review comments IPC-114 --- .../src/main/java/net/gini/android/core/api/MediaTypes.java | 1 - .../main/java/net/gini/android/core/api/models/Document.java | 1 - .../main/java/net/gini/android/core/api/models/Extraction.java | 1 - .../net/gini/android/core/api/models/SpecificExtraction.java | 1 - .../gini/android/health/sdk/review/model/ExtractionResult.kt | 3 --- 5 files changed, 7 deletions(-) diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java b/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java index 8b055f5902..c19f0ecf82 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/MediaTypes.java @@ -6,7 +6,6 @@ /** * Media Types used across the application (e.g document types, http headers) */ - public class MediaTypes { public static final String IMAGE_JPEG = "image/jpeg"; diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/models/Document.java b/core-api-library/library/src/main/java/net/gini/android/core/api/models/Document.java index ba645be33d..65044c15b2 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/models/Document.java +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/models/Document.java @@ -20,7 +20,6 @@ /** * A document sent for processing to the Gini API. */ - public class Document implements Parcelable { /** diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/models/Extraction.java b/core-api-library/library/src/main/java/net/gini/android/core/api/models/Extraction.java index 74a115fbe1..0eed779595 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/models/Extraction.java +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/models/Extraction.java @@ -13,7 +13,6 @@ * There might be an optional box element describing the position of the extraction value on the document. We refer to it as the bounding box. * In most cases, the extractions without a bounding box are considered to be meta information such as doctype. */ - public class Extraction implements Parcelable { private String mValue; private final String mEntity; diff --git a/core-api-library/library/src/main/java/net/gini/android/core/api/models/SpecificExtraction.java b/core-api-library/library/src/main/java/net/gini/android/core/api/models/SpecificExtraction.java index f4ce02dc89..c4aa5f4d54 100644 --- a/core-api-library/library/src/main/java/net/gini/android/core/api/models/SpecificExtraction.java +++ b/core-api-library/library/src/main/java/net/gini/android/core/api/models/SpecificExtraction.java @@ -12,7 +12,6 @@ /** * A specific extraction assigns a semantic property to the extraction. It also has an additional candidates field. */ - public class SpecificExtraction extends Extraction { private final String mName; diff --git a/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/ExtractionResult.kt b/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/ExtractionResult.kt index 4cbcf76458..e04c6f7c0e 100644 --- a/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/ExtractionResult.kt +++ b/health-sdk/sdk/src/main/java/net/gini/android/health/sdk/review/model/ExtractionResult.kt @@ -4,9 +4,6 @@ import net.gini.android.core.api.Resource /** * Represents the result of processing a document to get its extractions. - */ - -/** * Wraps the result of the extraction request. */ sealed class ResultWrapper {