Default Implementation
The capture feature is unaware of any networking implementations and it requires you to set them in the CaptureConfiguration
. The networking related logic is abstracted behind the GiniCaptureNetworkService
interface which is used to upload, analyze and delete documents. Find more details in the reference documentation.
We provide a default implementation of GiniCaptureNetworkService
called GiniCaptureDefaultNetworkService
. You can use the helper method to create it with minimal configuration and pass it to the CaptureConfiguration
:
val networkService = getDefaultNetworkService(
context = this,
clientId = myClientId,
clientSecret = myClientSecret,
emailDomain = myEmailDomain,
documentMetadata = myDocumentMetadata
)
GiniBank.setCaptureConfiguration(context,
CaptureConfiguration(
networkService = networkService
)
)
If you want to use only your own authentication, please implement the SessionManager
interface and use the GiniCaptureDefaultNetworkService.builder()
to create the default network service with a your own SessionManager
implementation:
class YourSessionManager: SessionManager {
override suspend fun getSession(): Resource<Session> {
// Retrieve the session token from your backend
val sessionToken: String = (...)
val expirationDate: Date = (...)
// Note: When the token expires the SDK calls this method
// again to get a new token.
return Resource.Success(Session(sessionToken, expirationDate))
}
}
val networkService = GiniCaptureDefaultNetworkService.builder(context)
.setClientCredentials(clientId, clientSecret, emailDomain)
.setDocumentMetadata(documentMetadata)
.setSessionManager(YourSessionManager())
.build()
GiniBank.setCaptureConfiguration(context,
CaptureConfiguration(
networkService = networkService
)
)
If you want to use a transparent proxy with your own authentication, specify your own domain and also pass in your implementation of the SessionManager
interface:
class YourSessionManager: SessionManager {
(...)
}
val networkService = GiniCaptureDefaultNetworkService.builder(context)
.setClientCredentials(clientId, clientSecret, emailDomain)
.setDocumentMetadata(documentMetadata)
.setBaseUrl("https://api.custom.net/")
.setSessionManager(YourSessionManager())
.build()
GiniBank.setCaptureConfiguration(context,
CaptureConfiguration(
networkService = networkService
)
)
The token you provide is added as a bearer token to all api.custom.net
requests.
You can also specify a custom path segment in the base URL if your proxy URL requires it:
For all configuration options of the default networking implementation, see the documentation of GiniCaptureDefaultNetworkService.Builder.
Â