mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2024-11-22 17:35:54 +03:00
Merge pull request #4346 from vector-im/feature/bma/login_custom
Add API `LoginWizard.loginCustom(data: JsonDict): Session`
This commit is contained in:
commit
31abf44d0e
4 changed files with 21 additions and 0 deletions
1
changelog.d/4266.removal
Normal file
1
changelog.d/4266.removal
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Add API `LoginWizard.loginCustom(data: JsonDict): Session` to be able to login to a homeserver using arbitrary request content
|
|
@ -17,6 +17,7 @@
|
||||||
package org.matrix.android.sdk.api.auth.login
|
package org.matrix.android.sdk.api.auth.login
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.session.Session
|
import org.matrix.android.sdk.api.session.Session
|
||||||
|
import org.matrix.android.sdk.api.util.JsonDict
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set of methods to be able to login to an existing account on a homeserver.
|
* Set of methods to be able to login to an existing account on a homeserver.
|
||||||
|
@ -51,6 +52,12 @@ interface LoginWizard {
|
||||||
*/
|
*/
|
||||||
suspend fun loginWithToken(loginToken: String): Session
|
suspend fun loginWithToken(loginToken: String): Session
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Login to the homeserver by sending a custom JsonDict.
|
||||||
|
* The data should contain at least one entry "type" with a String value.
|
||||||
|
*/
|
||||||
|
suspend fun loginCustom(data: JsonDict): Session
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ask the homeserver to reset the user password. The password will not be reset until
|
* Ask the homeserver to reset the user password. The password will not be reset until
|
||||||
* [resetPasswordMailConfirmed] is successfully called.
|
* [resetPasswordMailConfirmed] is successfully called.
|
||||||
|
|
|
@ -121,6 +121,10 @@ internal interface AuthAPI {
|
||||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "login")
|
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "login")
|
||||||
suspend fun login(@Body loginParams: TokenLoginParams): Credentials
|
suspend fun login(@Body loginParams: TokenLoginParams): Credentials
|
||||||
|
|
||||||
|
@Headers("CONNECT_TIMEOUT:60000", "READ_TIMEOUT:60000", "WRITE_TIMEOUT:60000")
|
||||||
|
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "login")
|
||||||
|
suspend fun login(@Body loginParams: JsonDict): Credentials
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ask the homeserver to reset the password associated with the provided email.
|
* Ask the homeserver to reset the password associated with the provided email.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.matrix.android.sdk.api.auth.login.LoginProfileInfo
|
||||||
import org.matrix.android.sdk.api.auth.login.LoginWizard
|
import org.matrix.android.sdk.api.auth.login.LoginWizard
|
||||||
import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
|
import org.matrix.android.sdk.api.auth.registration.RegisterThreePid
|
||||||
import org.matrix.android.sdk.api.session.Session
|
import org.matrix.android.sdk.api.session.Session
|
||||||
|
import org.matrix.android.sdk.api.util.JsonDict
|
||||||
import org.matrix.android.sdk.internal.auth.AuthAPI
|
import org.matrix.android.sdk.internal.auth.AuthAPI
|
||||||
import org.matrix.android.sdk.internal.auth.PendingSessionStore
|
import org.matrix.android.sdk.internal.auth.PendingSessionStore
|
||||||
import org.matrix.android.sdk.internal.auth.SessionCreator
|
import org.matrix.android.sdk.internal.auth.SessionCreator
|
||||||
|
@ -91,6 +92,14 @@ internal class DefaultLoginWizard(
|
||||||
return sessionCreator.createSession(credentials, pendingSessionData.homeServerConnectionConfig)
|
return sessionCreator.createSession(credentials, pendingSessionData.homeServerConnectionConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun loginCustom(data: JsonDict): Session {
|
||||||
|
val credentials = executeRequest(null) {
|
||||||
|
authAPI.login(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
return sessionCreator.createSession(credentials, pendingSessionData.homeServerConnectionConfig)
|
||||||
|
}
|
||||||
|
|
||||||
override suspend fun resetPassword(email: String, newPassword: String) {
|
override suspend fun resetPassword(email: String, newPassword: String) {
|
||||||
val param = RegisterAddThreePidTask.Params(
|
val param = RegisterAddThreePidTask.Params(
|
||||||
RegisterThreePid.Email(email),
|
RegisterThreePid.Email(email),
|
||||||
|
|
Loading…
Reference in a new issue