diff --git a/app/build.gradle b/app/build.gradle index 1038cb92..b7fa6e93 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -49,13 +49,11 @@ android { } buildFeatures { - dataBinding true - viewBinding true compose true } composeOptions { - kotlinCompilerExtensionVersion "1.2.0" + kotlinCompilerExtensionVersion "1.5.2" } namespace 'com.hieuwu.groceriesstore' } @@ -69,7 +67,6 @@ dependencies { implementation libs.kotlin.stdlib implementation libs.legacy.support.v4 - implementation libs.rxjava implementation libs.timber @@ -97,7 +94,7 @@ dependencies { // implementation("io.github.jan-tennert.supabase:postgrest-kt:0.2.0") implementation("io.ktor:ktor-client-cio:1.6.0") - implementation("io.github.jan-tennert.supabase:postgrest-kt-android:0.9.0-alpha-4") + implementation("io.github.jan-tennert.supabase:postgrest-kt-android:2.0.0") implementation "io.ktor:ktor-client-android:2.2.1" implementation "io.ktor:ktor-utils-jvm:1.6.0" implementation "io.ktor:ktor-client-logging-jvm:1.6.0" diff --git a/app/src/main/java/com/hieuwu/groceriesstore/data/repository/impl/UserRepositoryImpl.kt b/app/src/main/java/com/hieuwu/groceriesstore/data/repository/impl/UserRepositoryImpl.kt index 6c05df33..738b33c9 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/data/repository/impl/UserRepositoryImpl.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/data/repository/impl/UserRepositoryImpl.kt @@ -7,7 +7,7 @@ import com.hieuwu.groceriesstore.data.network.dto.UserDto import com.hieuwu.groceriesstore.data.repository.UserRepository import com.hieuwu.groceriesstore.utilities.CollectionNames import com.hieuwu.groceriesstore.utilities.SupabaseMapper -import io.github.jan.supabase.gotrue.GoTrue +import io.github.jan.supabase.gotrue.Auth import io.github.jan.supabase.gotrue.providers.builtin.Email import io.github.jan.supabase.postgrest.Postgrest import java.util.* @@ -17,7 +17,7 @@ import javax.inject.Inject class UserRepositoryImpl @Inject constructor( private val userDao: UserDao, - private val authService: GoTrue, + private val authService: Auth, private val postgrest: Postgrest, ) : UserRepository { @@ -37,7 +37,7 @@ class UserRepositoryImpl @Inject constructor( isPromotionNotiEnabled = false, isDataRefreshedNotiEnabled = false ) - postgrest[CollectionNames.users].insert(value = userDto, upsert = true) + postgrest[CollectionNames.users].upsert(value = userDto) val user = SupabaseMapper.mapDtoToEntity(userDto) userDao.insert(user) true @@ -49,7 +49,7 @@ class UserRepositoryImpl @Inject constructor( override suspend fun authenticate(email: String, password: String): Boolean { return try { - authService.loginWith(Email) { + authService.signInWith(Email) { this.email = email this.password = password } @@ -85,7 +85,7 @@ class UserRepositoryImpl @Inject constructor( UserDto::address setTo address } ) { - UserDto::id eq userId + UserDto::id to userId } userDao.insert(dbUser) } catch (e: Exception) { @@ -94,7 +94,7 @@ class UserRepositoryImpl @Inject constructor( } override suspend fun clearUser() { - userDao.clear() + userDao.clearUser() } override suspend fun updateUserSettings( @@ -111,7 +111,9 @@ class UserRepositoryImpl @Inject constructor( UserDto::isPromotionNotiEnabled setTo isPromotionEnabled } ) { - UserDto::id eq id + filter { + UserDto::id eq id + } } userDao.updateUserSettings( id, diff --git a/app/src/main/java/com/hieuwu/groceriesstore/di/SupabaseModule.kt b/app/src/main/java/com/hieuwu/groceriesstore/di/SupabaseModule.kt index 6067cd5f..5fa23f4a 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/di/SupabaseModule.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/di/SupabaseModule.kt @@ -7,8 +7,8 @@ import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent import io.github.jan.supabase.SupabaseClient import io.github.jan.supabase.createSupabaseClient -import io.github.jan.supabase.gotrue.GoTrue -import io.github.jan.supabase.gotrue.gotrue +import io.github.jan.supabase.gotrue.Auth +import io.github.jan.supabase.gotrue.auth import io.github.jan.supabase.postgrest.Postgrest import io.github.jan.supabase.postgrest.postgrest import io.ktor.client.plugins.* @@ -26,7 +26,7 @@ object SupabaseModule { supabaseKey = BuildConfig.API_KEY ) { install(Postgrest) - install(GoTrue) + install(Auth) } } @@ -38,8 +38,8 @@ object SupabaseModule { @Provides @Singleton - fun provideSupabaseGoTrue(client: SupabaseClient): GoTrue { - return client.gotrue + fun provideSupabaseGoTrue(client: SupabaseClient): Auth { + return client.auth } } diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt index a44af731..a5d2db54 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/explore/ExploreViewModel.kt @@ -66,7 +66,8 @@ class ExploreViewModel @Inject constructor( fun searchProduct(name: String) { if (name.isNotBlank()) { viewModelScope.launch { - val res = searchProductUseCase.execute(SearchProductUseCase.Input(name = name.trim())) + val res = + searchProductUseCase.execute(SearchProductUseCase.Input(name = name.trim())) res.result.collect { _productList.value = it } @@ -96,7 +97,10 @@ class ExploreViewModel @Inject constructor( val cartId = _currentCart.value!!.id viewModelScope.launch { val lineItem = LineItem( - product.id, cartId, 1, product.price!! + productId = product.id, + orderId = cartId, + quantity = 1, + subtotal = product.price!! ) addToCartUseCase.execute(AddToCartUseCase.Input(lineItem = lineItem)) } @@ -106,7 +110,10 @@ class ExploreViewModel @Inject constructor( viewModelScope.launch { createNewOrderUseCase.execute(CreateNewOrderUseCase.Input(order = newOrder)) val lineItem = LineItem( - product.id, id, 1, product.price!! + productId = product.id, + orderId = id, + quantity = 1, + subtotal = product.price!! ) addToCartUseCase.execute(AddToCartUseCase.Input(lineItem = lineItem)) } diff --git a/app/src/main/java/com/hieuwu/groceriesstore/presentation/shop/ShopViewModel.kt b/app/src/main/java/com/hieuwu/groceriesstore/presentation/shop/ShopViewModel.kt index cfed7ead..5507dedf 100644 --- a/app/src/main/java/com/hieuwu/groceriesstore/presentation/shop/ShopViewModel.kt +++ b/app/src/main/java/com/hieuwu/groceriesstore/presentation/shop/ShopViewModel.kt @@ -50,6 +50,7 @@ class ShopViewModel @Inject constructor( currentCart.collect {} } } + fun displayProductDetails(product: ProductModel) { _navigateToSelectedProperty.value = product } @@ -82,10 +83,10 @@ class ShopViewModel @Inject constructor( addToCartUseCase.execute( AddToCartUseCase.Input( LineItem( - product.id, - cartId, - 1, - product.price!! + productId = product.id, + orderId = cartId, + quantity = 1, + subtotal = product.price!! ) ) ) @@ -96,15 +97,20 @@ class ShopViewModel @Inject constructor( createNewOrderUseCase.execute( CreateNewOrderUseCase.Input( Order( - id, - OrderStatus.IN_CART.value, - "" + id = id, + status = OrderStatus.IN_CART.value, + address = "" ) ) ) addToCartUseCase.execute( AddToCartUseCase.Input( - LineItem(product.id, id, 1, product.price!!) + LineItem( + productId = product.id, + orderId = id, + quantity = 1, + subtotal = product.price!! + ) ) ) }