Skip to content
This repository was archived by the owner on Dec 16, 2023. It is now read-only.

Commit 2943e83

Browse files
committed
Remove unnecessary withContext(Dispatchers.IO)
Both Retrofit and Room are main safe
1 parent 57c542a commit 2943e83

6 files changed

Lines changed: 45 additions & 59 deletions

File tree

core/src/main/java/com/marknjunge/core/data/repository/AuthRepository.kt

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,9 @@ package com.marknjunge.core.data.repository
22

33
import com.marknjunge.core.data.local.PreferencesRepository
44
import com.marknjunge.core.data.model.*
5-
import com.marknjunge.core.data.model.SignInGoogleDto
65
import com.marknjunge.core.data.network.AuthService
76
import com.marknjunge.core.data.network.GoogleSignInClientStub
87
import com.marknjunge.core.utils.call
9-
import kotlinx.coroutines.Dispatchers
10-
import kotlinx.coroutines.withContext
118

129
interface AuthRepository {
1310
suspend fun signInWithGoogle(idToken: String): Resource<User>
@@ -35,8 +32,8 @@ internal class ApiAuthRepository(
3532
private val preferencesRepository: PreferencesRepository,
3633
private val googleSignInClient: GoogleSignInClientStub
3734
) : AuthRepository {
38-
override suspend fun signInWithGoogle(idToken: String): Resource<User> = withContext(Dispatchers.IO) {
39-
call {
35+
override suspend fun signInWithGoogle(idToken: String): Resource<User> {
36+
return call {
4037
val response = authService.signInWithGoogle(SignInGoogleDto(idToken))
4138

4239
preferencesRepository.user = response.user
@@ -51,8 +48,8 @@ internal class ApiAuthRepository(
5148
lastName: String,
5249
email: String,
5350
password: String
54-
): Resource<User> = withContext(Dispatchers.IO) {
55-
call {
51+
): Resource<User> {
52+
return call {
5653
val signUpDto = SignUpDto(firstName, lastName, password, email)
5754
val response = authService.signUp(signUpDto)
5855

@@ -63,8 +60,8 @@ internal class ApiAuthRepository(
6360
}
6461
}
6562

66-
override suspend fun signIn(email: String, password: String): Resource<User> = withContext(Dispatchers.IO) {
67-
call {
63+
override suspend fun signIn(email: String, password: String): Resource<User> {
64+
return call {
6865
val response = authService.signIn(SignInDto(email, password))
6966

7067
preferencesRepository.user = response.user
@@ -74,8 +71,8 @@ internal class ApiAuthRepository(
7471
}
7572
}
7673

77-
override suspend fun signOut(): Resource<Unit> = withContext(Dispatchers.IO) {
78-
call {
74+
override suspend fun signOut(): Resource<Unit> {
75+
return call {
7976
authService.signOut(preferencesRepository.sessionId)
8077
if (preferencesRepository.user!!.signInMethod == "GOOGLE") {
8178
googleSignInClient.signOut()
@@ -87,8 +84,8 @@ internal class ApiAuthRepository(
8784
}
8885
}
8986

90-
override suspend fun signOutLocally(): Resource<Unit> = withContext(Dispatchers.IO) {
91-
call {
87+
override suspend fun signOutLocally(): Resource<Unit> {
88+
return call {
9289
if (preferencesRepository.user!!.signInMethod == "GOOGLE") {
9390
googleSignInClient.signOut()
9491
}
@@ -99,15 +96,15 @@ internal class ApiAuthRepository(
9996
}
10097
}
10198

102-
override suspend fun requestPasswordReset(email: String) = withContext(Dispatchers.IO) {
103-
call {
99+
override suspend fun requestPasswordReset(email: String): Resource<ApiResponse> {
100+
return call {
104101
val response = authService.requestPasswordReset(RequestPasswordResetDto(email))
105102
Resource.Success(response)
106103
}
107104
}
108105

109-
override suspend fun resetPassword(token: String, newPassword: String) = withContext(Dispatchers.IO) {
110-
call {
106+
override suspend fun resetPassword(token: String, newPassword: String): Resource<ApiResponse> {
107+
return call {
111108
val response = authService.resetPassword(ResetPasswordDto(token, newPassword))
112109
Resource.Success(response)
113110
}

core/src/main/java/com/marknjunge/core/data/repository/CartRepository.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.marknjunge.core.data.repository
22

33
import com.marknjunge.core.data.local.PreferencesRepository
4-
import com.marknjunge.core.data.model.*
4+
import com.marknjunge.core.data.model.Resource
5+
import com.marknjunge.core.data.model.VerifyOrderDto
6+
import com.marknjunge.core.data.model.VerifyOrderResponse
57
import com.marknjunge.core.data.network.CartService
68
import com.marknjunge.core.utils.call
7-
import kotlinx.coroutines.Dispatchers
8-
import kotlinx.coroutines.withContext
99

1010
interface CartRepository {
1111
suspend fun verifyOrder(dto: VerifyOrderDto): Resource<List<VerifyOrderResponse>>
@@ -15,8 +15,8 @@ internal class ApiCartRepository(
1515
private val cartService: CartService,
1616
private val preferencesRepository: PreferencesRepository
1717
) : CartRepository {
18-
override suspend fun verifyOrder(dto: VerifyOrderDto) = withContext(Dispatchers.IO) {
19-
call {
18+
override suspend fun verifyOrder(dto: VerifyOrderDto): Resource<List<VerifyOrderResponse>> {
19+
return call {
2020
Resource.Success(cartService.verifyCart(preferencesRepository.sessionId, dto))
2121
}
2222
}

core/src/main/java/com/marknjunge/core/data/repository/OrdersRepository.kt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ import com.marknjunge.core.data.local.PreferencesRepository
44
import com.marknjunge.core.data.model.*
55
import com.marknjunge.core.data.network.OrdersService
66
import com.marknjunge.core.utils.call
7-
import kotlinx.coroutines.Dispatchers
8-
import kotlinx.coroutines.withContext
97

108
interface OrdersRepository {
119
suspend fun placeOrder(dto: PlaceOrderDto): Resource<Order>
@@ -21,28 +19,28 @@ internal class ApiOrdersRepository(
2119
private val ordersService: OrdersService,
2220
private val preferencesRepository: PreferencesRepository
2321
) : OrdersRepository {
24-
override suspend fun placeOrder(dto: PlaceOrderDto) = withContext(Dispatchers.IO) {
25-
call {
22+
override suspend fun placeOrder(dto: PlaceOrderDto): Resource<Order> {
23+
return call {
2624
Resource.Success(ordersService.placeOrder(preferencesRepository.sessionId, dto))
2725
}
2826
}
2927

30-
override suspend fun getOrders(): Resource<List<Order>> = withContext(Dispatchers.IO) {
31-
call {
28+
override suspend fun getOrders(): Resource<List<Order>> {
29+
return call {
3230
Resource.Success(ordersService.getOrders(preferencesRepository.sessionId))
3331
}
3432
}
3533

36-
override suspend fun changePaymentMethod(id: String, method: PaymentMethod) = withContext(Dispatchers.IO) {
37-
call {
34+
override suspend fun changePaymentMethod(id: String, method: PaymentMethod): Resource<ApiResponse> {
35+
return call {
3836
val dto = ChangePaymentMethodDto(method)
3937
val response = ordersService.changePaymentMethod(preferencesRepository.sessionId, id, dto)
4038
Resource.Success(response)
4139
}
4240
}
4341

44-
override suspend fun getOrderById(id: String): Resource<Order> = withContext(Dispatchers.IO) {
45-
call {
42+
override suspend fun getOrderById(id: String): Resource<Order> {
43+
return call {
4644
Resource.Success(ordersService.getOrderById(preferencesRepository.sessionId, id))
4745
}
4846
}

core/src/main/java/com/marknjunge/core/data/repository/PaymentRepository.kt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package com.marknjunge.core.data.repository
22

33
import com.marknjunge.core.data.local.PreferencesRepository
4+
import com.marknjunge.core.data.model.ApiResponse
45
import com.marknjunge.core.data.model.InitiateCardPaymentDto
56
import com.marknjunge.core.data.model.RequestMpesaDto
67
import com.marknjunge.core.data.model.Resource
78
import com.marknjunge.core.data.network.PaymentsService
8-
import com.marknjunge.core.data.model.ApiResponse
99
import com.marknjunge.core.utils.call
10-
import kotlinx.coroutines.Dispatchers
11-
import kotlinx.coroutines.withContext
1210

1311
interface PaymentsRepository {
1412
suspend fun requestMpesa(mobileNumber: String, orderId: String): Resource<ApiResponse>
@@ -31,8 +29,8 @@ internal class ApiPaymentsRepository(
3129
private val paymentsService: PaymentsService,
3230
private val preferencesRepository: PreferencesRepository
3331
) : PaymentsRepository {
34-
override suspend fun requestMpesa(mobileNumber: String, orderId: String) = withContext(Dispatchers.IO) {
35-
call {
32+
override suspend fun requestMpesa(mobileNumber: String, orderId: String): Resource<ApiResponse> {
33+
return call {
3634
Resource.Success(
3735
paymentsService.requestMpesa(
3836
preferencesRepository.sessionId,
@@ -53,8 +51,8 @@ internal class ApiPaymentsRepository(
5351
billingAddress: String,
5452
billingState: String,
5553
billingCountry: String
56-
) = withContext(Dispatchers.IO) {
57-
call {
54+
): Resource<ApiResponse> {
55+
return call {
5856
Resource.Success(
5957
paymentsService.initiateCardPayment(
6058
preferencesRepository.sessionId,

core/src/main/java/com/marknjunge/core/data/repository/ProductsRepository.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,17 @@
11
package com.marknjunge.core.data.repository
22

3+
import com.marknjunge.core.data.model.Product
34
import com.marknjunge.core.data.model.Resource
45
import com.marknjunge.core.data.network.ApiService
5-
import com.marknjunge.core.data.model.Product
66
import com.marknjunge.core.utils.call
7-
import kotlinx.coroutines.Dispatchers
8-
import kotlinx.coroutines.withContext
97

108
interface ProductsRepository {
119
suspend fun getProducts(): Resource<List<Product>>
1210
}
1311

1412
internal class ApiProductsRepository(private val apiService: ApiService) : ProductsRepository {
15-
override suspend fun getProducts(): Resource<List<Product>> = withContext(Dispatchers.IO) {
16-
call {
13+
override suspend fun getProducts(): Resource<List<Product>> {
14+
return call {
1715
Resource.Success(apiService.getProducts())
1816
}
1917
}

core/src/main/java/com/marknjunge/core/data/repository/UsersRepository.kt

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,13 @@ package com.marknjunge.core.data.repository
22

33
import com.marknjunge.core.data.local.PreferencesRepository
44
import com.marknjunge.core.data.model.*
5-
import com.marknjunge.core.data.model.UpdateFcmTokenDto
6-
import com.marknjunge.core.data.model.UpdateUserDto
75
import com.marknjunge.core.data.network.FirebaseService
86
import com.marknjunge.core.data.network.GoogleSignInClientStub
97
import com.marknjunge.core.data.network.UsersService
108
import com.marknjunge.core.utils.call
119
import com.marknjunge.core.utils.parseException
12-
import kotlinx.coroutines.Dispatchers
1310
import kotlinx.coroutines.flow.Flow
1411
import kotlinx.coroutines.flow.flow
15-
import kotlinx.coroutines.withContext
1612

1713
interface UsersRepository {
1814
suspend fun getCurrentUser(): Flow<Resource<User>>
@@ -47,9 +43,8 @@ internal class ApiUsersRepository(
4743
}
4844
}
4945

50-
override suspend fun updateUser(firstName: String, lastName: String, mobile: String, email: String) =
51-
withContext(Dispatchers.IO) {
52-
call {
46+
override suspend fun updateUser(firstName: String, lastName: String, mobile: String, email: String): Resource<Unit> {
47+
return call {
5348
usersService.updateUser(
5449
preferencesRepository.sessionId,
5550
UpdateUserDto(
@@ -71,8 +66,8 @@ internal class ApiUsersRepository(
7166
}
7267
}
7368

74-
override suspend fun addAddress(address: Address): Resource<Address> = withContext(Dispatchers.IO) {
75-
call {
69+
override suspend fun addAddress(address: Address): Resource<Address> {
70+
return call {
7671
val saveAddress = usersService.saveAddress(
7772
preferencesRepository.sessionId,
7873
SaveAddressDto(
@@ -88,8 +83,8 @@ internal class ApiUsersRepository(
8883
}
8984
}
9085

91-
override suspend fun deleteAddress(address: Address): Resource<Unit> = withContext(Dispatchers.IO) {
92-
call {
86+
override suspend fun deleteAddress(address: Address): Resource<Unit> {
87+
return call {
9388
usersService.deleteAddress(preferencesRepository.sessionId, address.id)
9489
val addresses = preferencesRepository.user!!.address.toMutableList()
9590
addresses.remove(address)
@@ -98,8 +93,8 @@ internal class ApiUsersRepository(
9893
}
9994
}
10095

101-
override suspend fun updateFcmToken() = withContext(Dispatchers.IO) {
102-
call {
96+
override suspend fun updateFcmToken(): Resource<Unit> {
97+
return call {
10398
val token = firebaseService.getFcmToken()
10499
usersService.updateFcmToken(preferencesRepository.sessionId, UpdateFcmTokenDto(token))
105100
val updatedUser = preferencesRepository.user!!.copy(fcmToken = token)
@@ -108,8 +103,8 @@ internal class ApiUsersRepository(
108103
}
109104
}
110105

111-
override suspend fun deleteUser(): Resource<Unit> = withContext(Dispatchers.IO) {
112-
call {
106+
override suspend fun deleteUser(): Resource<Unit> {
107+
return call {
113108
val res = usersService.deleteUser(preferencesRepository.sessionId)
114109
if (preferencesRepository.user!!.signInMethod == "GOOGLE"){
115110
googleSignInClient.signOut()

0 commit comments

Comments
 (0)