mirror of
https://github.com/bitwarden/android.git
synced 2025-02-17 04:19:54 +03:00
Create separate API for authenticated auth requests (#868)
This commit is contained in:
parent
2be6c9042f
commit
238a16652b
7 changed files with 38 additions and 28 deletions
|
@ -1,26 +1,16 @@
|
|||
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.AuthRequestUpdateRequestJson
|
||||
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.PUT
|
||||
import retrofit2.http.Path
|
||||
|
||||
/**
|
||||
* Defines raw calls under the /auth-requests API.
|
||||
* Defines authenticated raw calls under the /auth-requests API.
|
||||
*/
|
||||
interface AuthRequestsApi {
|
||||
|
||||
/**
|
||||
* Notifies the server of a new authentication request.
|
||||
*/
|
||||
@POST("/auth-requests")
|
||||
suspend fun createAuthRequest(
|
||||
@Body body: AuthRequestRequestJson,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest>
|
||||
interface AuthenticatedAuthRequestsApi {
|
||||
|
||||
/**
|
||||
* Updates an authentication request.
|
|
@ -0,0 +1,20 @@
|
|||
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.POST
|
||||
|
||||
/**
|
||||
* Defines unauthenticated raw calls under the /auth-requests API.
|
||||
*/
|
||||
interface UnauthenticatedAuthRequestsApi {
|
||||
|
||||
/**
|
||||
* Notifies the server of a new authentication request.
|
||||
*/
|
||||
@POST("/auth-requests")
|
||||
suspend fun createAuthRequest(
|
||||
@Body body: AuthRequestRequestJson,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest>
|
||||
}
|
|
@ -46,7 +46,7 @@ object AuthNetworkModule {
|
|||
fun providesAuthRequestsService(
|
||||
retrofits: Retrofits,
|
||||
): AuthRequestsService = AuthRequestsServiceImpl(
|
||||
authRequestsApi = retrofits.authenticatedApiRetrofit.create(),
|
||||
authenticatedAuthRequestsApi = retrofits.authenticatedApiRetrofit.create(),
|
||||
)
|
||||
|
||||
@Provides
|
||||
|
@ -84,7 +84,7 @@ object AuthNetworkModule {
|
|||
fun providesNewAuthRequestService(
|
||||
retrofits: Retrofits,
|
||||
): NewAuthRequestService = NewAuthRequestServiceImpl(
|
||||
authRequestsApi = retrofits.unauthenticatedApiRetrofit.create(),
|
||||
unauthenticatedAuthRequestsApi = retrofits.unauthenticatedApiRetrofit.create(),
|
||||
)
|
||||
|
||||
@Provides
|
||||
|
@ -92,6 +92,6 @@ object AuthNetworkModule {
|
|||
fun providesOrganizationService(
|
||||
retrofits: Retrofits,
|
||||
): OrganizationService = OrganizationServiceImpl(
|
||||
organizationApi = retrofits.unauthenticatedApiRetrofit.create(),
|
||||
organizationApi = retrofits.unauthenticatedApiRetrofit.create(),
|
||||
)
|
||||
}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
package com.x8bit.bitwarden.data.auth.datasource.network.service
|
||||
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedAuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestUpdateRequestJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson
|
||||
|
||||
class AuthRequestsServiceImpl(
|
||||
private val authRequestsApi: AuthRequestsApi,
|
||||
private val authenticatedAuthRequestsApi: AuthenticatedAuthRequestsApi,
|
||||
) : AuthRequestsService {
|
||||
override suspend fun getAuthRequests(): Result<AuthRequestsResponseJson> =
|
||||
authRequestsApi.getAuthRequests()
|
||||
authenticatedAuthRequestsApi.getAuthRequests()
|
||||
|
||||
override suspend fun updateAuthRequest(
|
||||
requestId: String,
|
||||
|
@ -17,7 +17,7 @@ class AuthRequestsServiceImpl(
|
|||
deviceId: String,
|
||||
isApproved: Boolean,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest> =
|
||||
authRequestsApi.updateAuthRequest(
|
||||
authenticatedAuthRequestsApi.updateAuthRequest(
|
||||
userId = requestId,
|
||||
body = AuthRequestUpdateRequestJson(
|
||||
key = key,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.x8bit.bitwarden.data.auth.datasource.network.service
|
||||
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedAuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestRequestJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestTypeJson
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson
|
||||
|
@ -9,7 +9,7 @@ import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsRespon
|
|||
* The default implementation of the [NewAuthRequestService].
|
||||
*/
|
||||
class NewAuthRequestServiceImpl(
|
||||
private val authRequestsApi: AuthRequestsApi,
|
||||
private val unauthenticatedAuthRequestsApi: UnauthenticatedAuthRequestsApi,
|
||||
) : NewAuthRequestService {
|
||||
override suspend fun createAuthRequest(
|
||||
email: String,
|
||||
|
@ -18,7 +18,7 @@ class NewAuthRequestServiceImpl(
|
|||
accessCode: String,
|
||||
fingerprint: String,
|
||||
): Result<AuthRequestsResponseJson.AuthRequest> =
|
||||
authRequestsApi.createAuthRequest(
|
||||
unauthenticatedAuthRequestsApi.createAuthRequest(
|
||||
AuthRequestRequestJson(
|
||||
email = email,
|
||||
publicKey = publicKey,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.x8bit.bitwarden.data.auth.datasource.network.service
|
||||
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthenticatedAuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.base.BaseServiceTest
|
||||
import kotlinx.coroutines.test.runTest
|
||||
|
@ -13,9 +13,9 @@ import java.time.ZonedDateTime
|
|||
|
||||
class AuthRequestsServiceTest : BaseServiceTest() {
|
||||
|
||||
private val authRequestsApi: AuthRequestsApi = retrofit.create()
|
||||
private val authRequestsApi: AuthenticatedAuthRequestsApi = retrofit.create()
|
||||
private val service = AuthRequestsServiceImpl(
|
||||
authRequestsApi = authRequestsApi,
|
||||
authenticatedAuthRequestsApi = authRequestsApi,
|
||||
)
|
||||
|
||||
@Test
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.x8bit.bitwarden.data.auth.datasource.network.service
|
||||
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.AuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.api.UnauthenticatedAuthRequestsApi
|
||||
import com.x8bit.bitwarden.data.auth.datasource.network.model.AuthRequestsResponseJson
|
||||
import com.x8bit.bitwarden.data.platform.base.BaseServiceTest
|
||||
import kotlinx.coroutines.test.runTest
|
||||
|
@ -13,9 +13,9 @@ import java.time.ZonedDateTime
|
|||
|
||||
class NewAuthRequestServiceTest : BaseServiceTest() {
|
||||
|
||||
private val authRequestsApi: AuthRequestsApi = retrofit.create()
|
||||
private val authRequestsApi: UnauthenticatedAuthRequestsApi = retrofit.create()
|
||||
private val service = NewAuthRequestServiceImpl(
|
||||
authRequestsApi = authRequestsApi,
|
||||
unauthenticatedAuthRequestsApi = authRequestsApi,
|
||||
)
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Add table
Reference in a new issue