BackupAPI

abstract class BackupAPI : AuthAPI(source)

Work in progress

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
open val createAccountUrl: String? = null

Link to a website for creating a new account

Link copied to clipboard
open val filename: String
Link copied to clipboard
open val hasInApp: Boolean = false

Has in app login support, aka login with a dialog

Link copied to clipboard
open val hasOAuth2: Boolean = false

Has OAuth2 login support, including login, loginRequest and refreshToken

Link copied to clipboard
open val hasPin: Boolean = false

Has on device pin support, aka login with a QR code

Link copied to clipboard
open val icon: Int? = null

Drawable icon of the service

Link copied to clipboard
open val idPrefix: String
Link copied to clipboard

The requirements to login in app

Link copied to clipboard
open val name: String
Link copied to clipboard
open val redirectUrlIdentifier: String? = null

The sensitive redirect URL from OAuth should contain "/redirectUrlIdentifier" to trigger the login

Link copied to clipboard
open val requiresLogin: Boolean = true

If this service requires an account to use

Functions

Link copied to clipboard
open suspend fun downloadFile(auth: AuthData?): String?

Get the backup file as a JSON string from the remote storage. Return null if not found/empty

Link copied to clipboard
Link copied to clipboard
open suspend fun invalidateToken(token: AuthToken): Nothing

An optional security measure to make sure that even if an attacker gets ahold of the token, it will be invalid.

Link copied to clipboard

Is this url a valid redirect url for this service?

Link copied to clipboard
open suspend fun login(form: AuthLoginResponse): AuthToken?

In app login

open suspend fun login(payload: AuthPinData): AuthToken?

Pin login, this will be called periodically while logging in to check if the pin has been verified by the user

open suspend fun login(redirectUrl: String, payload: String?): AuthToken?

OAuth2 login from a valid redirectUrl, and payload given in loginRequest

Link copied to clipboard
Link copied to clipboard

OAuth2 login request, asking the service to provide a url to open in the browser

Link copied to clipboard
open suspend fun pinRequest(): AuthPinData?

Pin login request, asking the service to provide an verificationUrl to display with a QR code

Link copied to clipboard
open suspend fun refreshToken(token: AuthToken): AuthToken?

OAuth2 token refresh, this ensures that all token passed to other functions will be valid

Link copied to clipboard
Link copied to clipboard
open suspend fun uploadFile(auth: AuthData?, data: String): String?

Get the backup file as a JSON string from the remote storage.

Link copied to clipboard
open suspend fun user(token: AuthToken?): AuthUser?

Get the visible user account