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 Original line Diff line number Diff line
@@ -18,12 +18,9 @@


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


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


interface LoginRepository {
interface LoginRepository {


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


class LoginRepositoryImpl @Inject constructor(
class LoginRepositoryImpl @Inject constructor(
    @ApplicationContext val applicationContext: Context,
    private val properties: Properties,
    private val anonymousUser: AnonymousUser,
    private val anonymousUser: AnonymousUser,
    @ApplicationContext val applicationContext: Context
) : LoginRepository {
) : 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(
        val result = anonymousUser.requestAuthData(
            anonymousAuthDataRequestBody = authDataRequestBody
            anonymousAuthDataRequestBody = AnonymousAuthDataRequestBody(
                properties = properties,
                userAgent = userAgent
            )
        )
        )


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


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


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


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


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


import app.lounge.model.AnonymousAuthDataRequestBody
import app.lounge.model.AnonymousAuthDataRequestBody
import com.aurora.gplayapi.data.models.AuthData
import com.aurora.gplayapi.data.models.AuthData
import foundation.e.apps.utils.SystemInfoProvider
import java.util.Properties
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(),
    properties = Properties(),
    userAgent = "testUserAgent"
    userAgent = SystemInfoProvider.getAppBuildInfo()
)
)


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

const val loginFailureMessage = "Fail to login"

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


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


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


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


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


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


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