Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddce8136 authored by Nishant Dande's avatar Nishant Dande
Browse files

Remove anonymousUser request parameter from api

parent 086312e9
Loading
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -18,12 +18,9 @@

package foundation.e.apps.domain.login.repository

import app.lounge.model.AnonymousAuthDataRequestBody
import com.aurora.gplayapi.data.models.AuthData

interface LoginRepository {

    suspend fun anonymousUser(
        authDataRequestBody: AnonymousAuthDataRequestBody
    ): AuthData
    suspend fun anonymousUser(): AuthData
}
+11 −3
Original line number Diff line number Diff line
@@ -25,16 +25,24 @@ import app.lounge.networking.NetworkResult
import app.lounge.storage.cache.configurations
import com.aurora.gplayapi.data.models.AuthData
import dagger.hilt.android.qualifiers.ApplicationContext
import foundation.e.apps.utils.SystemInfoProvider
import java.util.Properties
import javax.inject.Inject

class LoginRepositoryImpl @Inject constructor(
    @ApplicationContext val applicationContext: Context,
    private val properties: Properties,
    private val anonymousUser: AnonymousUser,
    @ApplicationContext val applicationContext: Context
) : LoginRepository {

    override suspend fun anonymousUser(authDataRequestBody: AnonymousAuthDataRequestBody): AuthData {
    private val userAgent: String by lazy { SystemInfoProvider.getAppBuildInfo() }

    override suspend fun anonymousUser(): AuthData {
        val result = anonymousUser.requestAuthData(
            anonymousAuthDataRequestBody = authDataRequestBody
            anonymousAuthDataRequestBody = AnonymousAuthDataRequestBody(
                properties = properties,
                userAgent = userAgent
            )
        )

        when (result) {
+2 −12
Original line number Diff line number Diff line
@@ -18,31 +18,21 @@

package foundation.e.apps.domain.login.usecase

import app.lounge.model.AnonymousAuthDataRequestBody
import com.aurora.gplayapi.data.models.AuthData
import foundation.e.apps.domain.login.repository.LoginRepository
import foundation.e.apps.utils.Resource
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.single
import java.util.Properties
import javax.inject.Inject

class UserLoginUseCase @Inject constructor(
    private val loginRepository: LoginRepository,
) {

    suspend fun anonymousUser(
        properties: Properties,
        userAgent: String
    ): Resource<AuthData> = flow {
    suspend fun anonymousUser(): Resource<AuthData> = flow {
        try {
            emit(Resource.Loading)
            val userResponse = loginRepository.anonymousUser(
                authDataRequestBody = AnonymousAuthDataRequestBody(
                    properties = properties,
                    userAgent = userAgent
                )
            )
            val userResponse = loginRepository.anonymousUser()
            emit(Resource.Success(userResponse))
        } catch (e: Exception) {
            emit(Resource.Error(e.localizedMessage))
+8 −7
Original line number Diff line number Diff line
@@ -20,15 +20,16 @@ package foundation.e.apps

import app.lounge.model.AnonymousAuthDataRequestBody
import com.aurora.gplayapi.data.models.AuthData
import foundation.e.apps.utils.SystemInfoProvider
import java.util.Properties

val testAnonymousRequestBodyData = AnonymousAuthDataRequestBody(
const val testEmailAddress: String = "eOS@murena.io"
const val loginFailureMessage = "Fail to login"
val testFailureException: Exception = Exception(loginFailureMessage)

val testAnonymousRequestData = AnonymousAuthDataRequestBody(
    properties = Properties(),
    userAgent = "testUserAgent"
    userAgent = SystemInfoProvider.getAppBuildInfo()
)

val testAnonymousResponseData = AuthData("eOS@murena.io", "")

const val loginFailureMessage = "Fail to login"

val testFailureException: Exception = Exception(loginFailureMessage)
val testAnonymousResponseData = AuthData(testEmailAddress, "")
+20 −19
Original line number Diff line number Diff line
@@ -23,8 +23,9 @@ import androidx.test.core.app.ApplicationProvider
import app.lounge.login.anonymous.AnonymousUser
import app.lounge.networking.NetworkResult
import foundation.e.apps.loginFailureMessage
import foundation.e.apps.testAnonymousRequestBodyData
import foundation.e.apps.testAnonymousRequestData
import foundation.e.apps.testAnonymousResponseData
import foundation.e.apps.testEmailAddress
import foundation.e.apps.testFailureException
import kotlinx.coroutines.test.runTest
import org.junit.Assert
@@ -42,32 +43,32 @@ class LoginRepositoryTest {
    @Mock
    lateinit var anonymousUser: AnonymousUser

    private lateinit var instrumentationContext: Context
    private lateinit var context: Context

    @Before
    fun setUp() {
        MockitoAnnotations.openMocks(this)
        instrumentationContext = ApplicationProvider.getApplicationContext<Context>()
        context = ApplicationProvider.getApplicationContext()
    }

    @Test
    fun testOnSuccessReturnAuthData() = runTest {
        Mockito.`when`(anonymousUser.requestAuthData(testAnonymousRequestBodyData))
            .thenReturn(NetworkResult.Success(testAnonymousResponseData))
        Mockito.`when`(
            anonymousUser.requestAuthData(testAnonymousRequestData)
        ).thenReturn(NetworkResult.Success(testAnonymousResponseData))

        val result = LoginRepositoryImpl(anonymousUser, instrumentationContext)
            .run {
                anonymousUser(testAnonymousRequestBodyData)
            }
        val result = LoginRepositoryImpl(context, testAnonymousRequestData.properties, anonymousUser)
            .anonymousUser()

        Assert.assertNotNull(result)
        Assert.assertEquals("eOS@murena.io", result.email)
        Assert.assertEquals(testEmailAddress, result.email)
    }

    @Test
    fun testOnFailureReturnErrorWithException() = runTest {
        Mockito.`when`(anonymousUser.requestAuthData(testAnonymousRequestBodyData))
            .thenReturn(
        Mockito.`when`(
            anonymousUser.requestAuthData(testAnonymousRequestData)
        ).thenReturn(
            NetworkResult.Error(
                exception = testFailureException,
                code = 1,
@@ -75,8 +76,8 @@ class LoginRepositoryTest {
            )
        )
        runCatching {
            LoginRepositoryImpl(anonymousUser, instrumentationContext)
                .run { anonymousUser(testAnonymousRequestBodyData) }
            LoginRepositoryImpl(context, testAnonymousRequestData.properties, anonymousUser)
                .run { anonymousUser() }
        }.onFailure { error ->
            Assert.assertEquals(testFailureException.message, error.message)
        }