mirror of
https://github.com/bitwarden/android.git
synced 2026-05-13 07:11:10 -05:00
Add API for getting auth request updates (#880)
This commit is contained in:
@@ -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 = """
|
||||
|
||||
Reference in New Issue
Block a user