mirror of
https://github.com/bitwarden/android.git
synced 2025-03-15 18:58:59 +03:00
Add API for getting auth request updates (#880)
This commit is contained in:
parent
034284fad4
commit
cd66699467
4 changed files with 51 additions and 0 deletions
|
@ -3,7 +3,10 @@ package com.x8bit.bitwarden.data.auth.datasource.network.api
|
|||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestRequestJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson
|
||||
import retrofit2.http.Body
|
||||
import retrofit2.http.GET
|
||||
import retrofit2.http.POST
|
||||
import retrofit2.http.Path
|
||||
import retrofit2.http.Query
|
||||
|
||||
/**
|
||||
* Defines unauthenticated raw calls under the /auth-requests API.
|
||||
|
@ -17,4 +20,13 @@ interface UnauthenticatedAuthRequestsApi {
|
|||
suspend fun createAuthRequest(
|
||||
@Body body: AuthRequestRequestJson,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest>
|
||||
|
||||
/**
|
||||
* Queries for updates to a given auth request.
|
||||
*/
|
||||
@GET("/auth-requests/{requestId}/response")
|
||||
suspend fun getAuthRequestUpdate(
|
||||
@Path("requestId") requestId: String,
|
||||
@Query("code") accessCode: String,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest>
|
||||
}
|
||||
|
|
|
@ -16,4 +16,12 @@ interface NewAuthRequestService {
|
|||
accessCode: String,
|
||||
fingerprint: String,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest>
|
||||
|
||||
/**
|
||||
* Queries for updates to a given auth request.
|
||||
*/
|
||||
suspend fun getAuthRequestUpdate(
|
||||
requestId: String,
|
||||
accessCode: String,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest>
|
||||
}
|
||||
|
|
|
@ -28,4 +28,13 @@ class NewAuthRequestServiceImpl(
|
|||
type = AuthRequestTypeJson.LOGIN_WITH_DEVICE,
|
||||
),
|
||||
)
|
||||
|
||||
override suspend fun getAuthRequestUpdate(
|
||||
requestId: String,
|
||||
accessCode: String,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest> =
|
||||
unauthenticatedAuthRequestsApi.getAuthRequestUpdate(
|
||||
requestId = requestId,
|
||||
accessCode = accessCode,
|
||||
)
|
||||
}
|
||||
|
|
|
@ -45,6 +45,28 @@ class NewAuthRequestServiceTest : BaseServiceTest() {
|
|||
)
|
||||
assertEquals(Result.success(AUTH_REQUEST_RESPONSE), actual)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `getAuthRequestUpdate when request response is Failure should return Failure`() = runTest {
|
||||
val response = MockResponse().setResponseCode(400)
|
||||
server.enqueue(response)
|
||||
val actual = service.getAuthRequestUpdate(
|
||||
requestId = "1",
|
||||
accessCode = "accessCode",
|
||||
)
|
||||
assertTrue(actual.isFailure)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `getAuthRequestUpdate when request response is Success should return Success`() = runTest {
|
||||
val response = MockResponse().setBody(AUTH_REQUEST_RESPONSE_JSON).setResponseCode(200)
|
||||
server.enqueue(response)
|
||||
val actual = service.getAuthRequestUpdate(
|
||||
requestId = "1",
|
||||
accessCode = "accessCode",
|
||||
)
|
||||
assertEquals(Result.success(AUTH_REQUEST_RESPONSE), actual)
|
||||
}
|
||||
}
|
||||
|
||||
private const val AUTH_REQUEST_RESPONSE_JSON = """
|
||||
|
|
Loading…
Add table
Reference in a new issue