Skip to content

Commit 2bd260d

Browse files
refactor #1505: migrated client usecase to kotlin
1 parent 74f78b0 commit 2bd260d

18 files changed

+281
-525
lines changed

core/data/src/main/java/org/mifos/mobilewallet/core/domain/usecase/client/CreateClient.java

-80
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.mifos.mobilewallet.core.domain.usecase.client
2+
3+
import org.mifos.mobilewallet.core.base.UseCase
4+
import org.mifos.mobilewallet.core.data.fineract.repository.FineractRepository
5+
import org.mifos.mobilewallet.core.domain.model.client.NewClient
6+
import org.mifos.mobilewallet.core.utils.ErrorJsonMessageHelper.getUserMessage
7+
import retrofit2.HttpException
8+
import rx.Subscriber
9+
import rx.android.schedulers.AndroidSchedulers
10+
import rx.schedulers.Schedulers
11+
import javax.inject.Inject
12+
13+
/**
14+
* Created by naman on 20/8/17.
15+
*/
16+
class CreateClient @Inject constructor(private val apiRepository: FineractRepository) :
17+
UseCase<CreateClient.RequestValues, CreateClient.ResponseValue>() {
18+
19+
data class RequestValues(val client: NewClient) : UseCase.RequestValues
20+
data class ResponseValue(val clientId: Int) : UseCase.ResponseValue
21+
22+
override fun executeUseCase(requestValues: RequestValues) {
23+
apiRepository.createClient(requestValues.client)
24+
.observeOn(AndroidSchedulers.mainThread())
25+
.subscribeOn(Schedulers.io())
26+
.subscribe(object : Subscriber<ResponseValue>() {
27+
override fun onCompleted() {}
28+
override fun onError(e: Throwable) {
29+
var message: String
30+
try {
31+
message = (e as HttpException).response().errorBody().string()
32+
message = getUserMessage(message)
33+
} catch (e1: Exception) {
34+
message = "Error"
35+
}
36+
useCaseCallback.onError(message)
37+
}
38+
39+
override fun onNext(genericResponse: ResponseValue) {
40+
useCaseCallback.onSuccess(genericResponse)
41+
}
42+
})
43+
}
44+
}

core/data/src/main/java/org/mifos/mobilewallet/core/domain/usecase/client/FetchClientData.java

-110
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package org.mifos.mobilewallet.core.domain.usecase.client
2+
3+
import org.mifos.mobilewallet.core.base.UseCase
4+
import org.mifos.mobilewallet.core.data.fineract.entity.client.Client
5+
import org.mifos.mobilewallet.core.data.fineract.entity.mapper.ClientDetailsMapper
6+
import org.mifos.mobilewallet.core.data.fineract.repository.FineractRepository
7+
import org.mifos.mobilewallet.core.utils.Constants
8+
import rx.Subscriber
9+
import rx.android.schedulers.AndroidSchedulers
10+
import rx.schedulers.Schedulers
11+
import javax.inject.Inject
12+
13+
/**
14+
* Created by naman on 17/6/17.
15+
*/
16+
class FetchClientData @Inject constructor(private val fineractRepository: FineractRepository) :
17+
UseCase<FetchClientData.RequestValues, FetchClientData.ResponseValue>() {
18+
19+
@Inject
20+
lateinit var clientDetailsMapper: ClientDetailsMapper
21+
22+
data class RequestValues(val clientid: Long) : UseCase.RequestValues
23+
data class ResponseValue(val userDetails: org.mifos.mobilewallet.core.domain.model.client.Client) :
24+
UseCase.ResponseValue
25+
26+
override fun executeUseCase(requestValues: RequestValues) {
27+
fineractRepository.getSelfClientDetails(requestValues.clientid)
28+
.observeOn(AndroidSchedulers.mainThread())
29+
.subscribeOn(Schedulers.io())
30+
.subscribe(object : Subscriber<Client>() {
31+
override fun onCompleted() {}
32+
override fun onError(e: Throwable) {
33+
useCaseCallback.onError(Constants.ERROR_FETCHING_CLIENT_DATA)
34+
}
35+
36+
override fun onNext(client: Client) {
37+
useCaseCallback.onSuccess(
38+
ResponseValue(
39+
clientDetailsMapper.transform(client)
40+
)
41+
)
42+
}
43+
})
44+
}
45+
}

core/data/src/main/java/org/mifos/mobilewallet/core/domain/usecase/client/FetchClientDetails.java

-72
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.mifos.mobilewallet.core.domain.usecase.client
2+
3+
import org.mifos.mobilewallet.core.base.UseCase
4+
import org.mifos.mobilewallet.core.data.fineract.entity.client.Client
5+
import org.mifos.mobilewallet.core.data.fineract.repository.FineractRepository
6+
import org.mifos.mobilewallet.core.utils.Constants
7+
import rx.Subscriber
8+
import rx.android.schedulers.AndroidSchedulers
9+
import rx.schedulers.Schedulers
10+
import javax.inject.Inject
11+
12+
/**
13+
* Created by ankur on 24/July/2018
14+
*/
15+
class FetchClientDetails @Inject constructor(private val mFineractRepository: FineractRepository) :
16+
UseCase<FetchClientDetails.RequestValues, FetchClientDetails.ResponseValue>() {
17+
18+
data class RequestValues(val clientId: Long) : UseCase.RequestValues
19+
data class ResponseValue(val client: Client) : UseCase.ResponseValue
20+
21+
override fun executeUseCase(requestValues: RequestValues) {
22+
mFineractRepository.getClientDetails(requestValues.clientId)
23+
.observeOn(AndroidSchedulers.mainThread())
24+
.subscribeOn(Schedulers.io())
25+
.subscribe(object : Subscriber<Client>() {
26+
override fun onCompleted() {}
27+
override fun onError(e: Throwable) {
28+
useCaseCallback.onError(Constants.ERROR_FETCHING_CLIENT_DATA)
29+
}
30+
31+
override fun onNext(client: Client) {
32+
useCaseCallback.onSuccess(ResponseValue(client))
33+
}
34+
})
35+
}
36+
}

0 commit comments

Comments
 (0)