Loading modules/src/main/java/app/lounge/users/Google.kt 0 → 100644 +8 −0 Original line number Diff line number Diff line package app.lounge.users /** * Implement API related to Google login flow only. * 1. Login api for google users. * 2. Parsing google user data. For now use typealias object, later we will refactor with generic type * 3. Add unit test cases for the api functions. * */ No newline at end of file modules/src/main/java/app/lounge/users/Session.kt 0 → 100644 +11 −0 Original line number Diff line number Diff line package app.lounge.users /** * Handle user login session in the file. * This should be the only file which communicate with application regarding user data * * 1. Application facing api will be part of this file. * 2. Manage user session for Anonymous, Google, PWA users. * 3. In case of invalid user data, timeout etc. inform application about session failure. * 4. If possible add session api testcases. */ No newline at end of file modules/src/main/java/app/lounge/users/anonymous/Anonymous.kt 0 → 100644 +35 −0 Original line number Diff line number Diff line package app.lounge.users.anonymous /** * Implement API related to Anonymous login flow only. * 1. Login api for Anonymous users. * 2. Parsing Anonymous user data. For now use typealias object, later we will refactor with generic type * 3. Add unit test cases for the api functions. * */ interface Anonymous { val api: AnonymousAPI companion object { fun anonymousRequestFor( api: AnonymousAPI = AnonymousAPI.create() ) : Anonymous { return object : Anonymous { override val api: AnonymousAPI = api } } } // pass input from this function fun login( success : () -> Unit, failure : () -> Unit ) { api.performLogin( success = success, failure = failure ) } } No newline at end of file modules/src/main/java/app/lounge/users/anonymous/AnonymousAPI.kt 0 → 100644 +33 −0 Original line number Diff line number Diff line package app.lounge.users.anonymous import app.lounge.BuildConfig interface AnonymousAPI { companion object { private const val tokenBaseURL: String = "https://eu.gtoken.ecloud.global" private const val loginBaseURL: String = "GooglePlayApi.URL_SYNC" fun create(baseURL: String = tokenBaseURL) : AnonymousAPI { return RetrofitAnonymousAPI( baseURL = baseURL, anonymousUserEndpointFollowsRedirects = true, callTimeoutInSeconds = 30 ) } } fun performLogin( success : () -> Unit, failure : () -> Unit ) object Header { val authData: Map<String, String> get() { return mapOf( Pair("User-Agent", BuildConfig.BUILD_TYPE), // CommonUtilsFunctions.getAppBuildInfo() ) } } } No newline at end of file modules/src/main/java/app/lounge/users/anonymous/RetrofitAnonymousAPI.kt 0 → 100644 +58 −0 Original line number Diff line number Diff line package app.lounge.users.anonymous import app.lounge.networking.RetrofitFetching import app.lounge.networking.RetrofitRawResultProcessing import app.lounge.networking.RetrofitResult import app.lounge.networking.appLounge import app.lounge.networking.fetch import okhttp3.RequestBody import retrofit2.Call import retrofit2.Retrofit import retrofit2.http.Body import retrofit2.http.HeaderMap import retrofit2.http.POST internal class RetrofitAnonymousAPI( baseURL: String, anonymousUserEndpointFollowsRedirects: Boolean, callTimeoutInSeconds: Long, ): AnonymousAPI, RetrofitFetching { private val anonymousUserEndPoint: AnonymousUserEndPointEndpoint = Retrofit.Builder().appLounge( baseURL = baseURL, shouldFollowRedirects = anonymousUserEndpointFollowsRedirects, callTimeoutInSeconds = callTimeoutInSeconds ).create(AnonymousUserEndPointEndpoint::class.java) interface AnonymousUserEndPointEndpoint { @POST fun authDataRequest( @HeaderMap headers: Map<String, String> = AnonymousAPI.Header.authData, @Body requestBody: RequestBody? ): Call<Unit> } override fun performLogin(success: () -> Unit, failure: () -> Unit) { /*fetch( endpoint = anonymousUserEndPoint.authDataRequest(requestBody = null), processing = , )*/ } /*private val cardTerminalResultProcessing = RetrofitRawResultProcessing< CardTerminalRetrofitCallRequestResponse, CardTerminalRetrofitCallFailure, CardTerminalRetrofitCallResponse>( errorFromNetworkFailure = { CardTerminalRetrofitCallFailure.Network(it) }, onResponse = { _, response -> RetrofitResult.Success(CardTerminalRetrofitCallResponse("")) } )*/ } internal typealias CardTerminalRetrofitCallResponse = String internal typealias CardTerminalRetrofitCallRequestResponse = String internal typealias CardTerminalRetrofitCallFailure = String Loading
modules/src/main/java/app/lounge/users/Google.kt 0 → 100644 +8 −0 Original line number Diff line number Diff line package app.lounge.users /** * Implement API related to Google login flow only. * 1. Login api for google users. * 2. Parsing google user data. For now use typealias object, later we will refactor with generic type * 3. Add unit test cases for the api functions. * */ No newline at end of file
modules/src/main/java/app/lounge/users/Session.kt 0 → 100644 +11 −0 Original line number Diff line number Diff line package app.lounge.users /** * Handle user login session in the file. * This should be the only file which communicate with application regarding user data * * 1. Application facing api will be part of this file. * 2. Manage user session for Anonymous, Google, PWA users. * 3. In case of invalid user data, timeout etc. inform application about session failure. * 4. If possible add session api testcases. */ No newline at end of file
modules/src/main/java/app/lounge/users/anonymous/Anonymous.kt 0 → 100644 +35 −0 Original line number Diff line number Diff line package app.lounge.users.anonymous /** * Implement API related to Anonymous login flow only. * 1. Login api for Anonymous users. * 2. Parsing Anonymous user data. For now use typealias object, later we will refactor with generic type * 3. Add unit test cases for the api functions. * */ interface Anonymous { val api: AnonymousAPI companion object { fun anonymousRequestFor( api: AnonymousAPI = AnonymousAPI.create() ) : Anonymous { return object : Anonymous { override val api: AnonymousAPI = api } } } // pass input from this function fun login( success : () -> Unit, failure : () -> Unit ) { api.performLogin( success = success, failure = failure ) } } No newline at end of file
modules/src/main/java/app/lounge/users/anonymous/AnonymousAPI.kt 0 → 100644 +33 −0 Original line number Diff line number Diff line package app.lounge.users.anonymous import app.lounge.BuildConfig interface AnonymousAPI { companion object { private const val tokenBaseURL: String = "https://eu.gtoken.ecloud.global" private const val loginBaseURL: String = "GooglePlayApi.URL_SYNC" fun create(baseURL: String = tokenBaseURL) : AnonymousAPI { return RetrofitAnonymousAPI( baseURL = baseURL, anonymousUserEndpointFollowsRedirects = true, callTimeoutInSeconds = 30 ) } } fun performLogin( success : () -> Unit, failure : () -> Unit ) object Header { val authData: Map<String, String> get() { return mapOf( Pair("User-Agent", BuildConfig.BUILD_TYPE), // CommonUtilsFunctions.getAppBuildInfo() ) } } } No newline at end of file
modules/src/main/java/app/lounge/users/anonymous/RetrofitAnonymousAPI.kt 0 → 100644 +58 −0 Original line number Diff line number Diff line package app.lounge.users.anonymous import app.lounge.networking.RetrofitFetching import app.lounge.networking.RetrofitRawResultProcessing import app.lounge.networking.RetrofitResult import app.lounge.networking.appLounge import app.lounge.networking.fetch import okhttp3.RequestBody import retrofit2.Call import retrofit2.Retrofit import retrofit2.http.Body import retrofit2.http.HeaderMap import retrofit2.http.POST internal class RetrofitAnonymousAPI( baseURL: String, anonymousUserEndpointFollowsRedirects: Boolean, callTimeoutInSeconds: Long, ): AnonymousAPI, RetrofitFetching { private val anonymousUserEndPoint: AnonymousUserEndPointEndpoint = Retrofit.Builder().appLounge( baseURL = baseURL, shouldFollowRedirects = anonymousUserEndpointFollowsRedirects, callTimeoutInSeconds = callTimeoutInSeconds ).create(AnonymousUserEndPointEndpoint::class.java) interface AnonymousUserEndPointEndpoint { @POST fun authDataRequest( @HeaderMap headers: Map<String, String> = AnonymousAPI.Header.authData, @Body requestBody: RequestBody? ): Call<Unit> } override fun performLogin(success: () -> Unit, failure: () -> Unit) { /*fetch( endpoint = anonymousUserEndPoint.authDataRequest(requestBody = null), processing = , )*/ } /*private val cardTerminalResultProcessing = RetrofitRawResultProcessing< CardTerminalRetrofitCallRequestResponse, CardTerminalRetrofitCallFailure, CardTerminalRetrofitCallResponse>( errorFromNetworkFailure = { CardTerminalRetrofitCallFailure.Network(it) }, onResponse = { _, response -> RetrofitResult.Success(CardTerminalRetrofitCallResponse("")) } )*/ } internal typealias CardTerminalRetrofitCallResponse = String internal typealias CardTerminalRetrofitCallRequestResponse = String internal typealias CardTerminalRetrofitCallFailure = String