Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(core): migrate from dbflow to room for client #2300

Draft
wants to merge 9 commits into
base: kmp-impl
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ package com.mifos.core.data.pagingSource

import androidx.paging.PagingSource
import androidx.paging.PagingState
import com.mifos.core.entity.client.Charges
import com.mifos.core.network.datamanager.DataManagerCharge
import com.mifos.core.objects.clients.Page
import com.mifos.room.entities.client.Charges
import com.mifos.room.entities.client.Page
import kotlinx.coroutines.suspendCancellableCoroutine
import rx.Subscriber
import rx.android.schedulers.AndroidSchedulers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ package com.mifos.core.data.pagingSource

import androidx.paging.PagingSource
import androidx.paging.PagingState
import com.mifos.core.entity.client.Client
import com.mifos.core.network.datamanager.DataManagerClient
import com.mifos.core.objects.clients.Page
import com.mifos.room.entities.client.Client
import com.mifos.room.entities.client.Page
import rx.Subscriber
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
package com.mifos.core.data.repository

import androidx.paging.PagingData
import com.mifos.core.entity.client.Charges
import com.mifos.room.entities.client.Charges
import kotlinx.coroutines.flow.Flow

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,20 +9,20 @@
*/
package com.mifos.core.data.repository

import com.mifos.core.entity.client.Client
import com.mifos.room.entities.accounts.ClientAccounts
import com.mifos.room.entities.client.Client
import kotlinx.coroutines.flow.Flow
import okhttp3.MultipartBody
import okhttp3.ResponseBody
import rx.Observable

/**
* Created by Aditya Gupta on 06/08/23.
*/
interface ClientDetailsRepository {

fun uploadClientImage(id: Int, file: MultipartBody.Part?): Observable<ResponseBody>
fun uploadClientImage(id: Int, file: MultipartBody.Part?): Flow<ResponseBody>

fun deleteClientImage(clientId: Int): Observable<ResponseBody>
fun deleteClientImage(clientId: Int): Flow<ResponseBody>

suspend fun getClientAccounts(clientId: Int): ClientAccounts

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
*/
package com.mifos.core.data.repository

import com.mifos.core.objects.noncoreobjects.IdentifierCreationResponse
import com.mifos.core.objects.noncoreobjects.IdentifierPayload
import com.mifos.core.objects.noncoreobjects.IdentifierTemplate
import com.mifos.room.entities.noncore.IdentifierCreationResponse
import com.mifos.room.entities.noncore.IdentifierPayload
import com.mifos.room.entities.noncore.IdentifierTemplate

/**
* Created by Aditya Gupta on 16/08/23.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
*/
package com.mifos.core.data.repository

import com.mifos.core.objects.noncoreobjects.Identifier
import com.mifos.room.entities.noncore.Identifier
import org.openapitools.client.models.DeleteClientsClientIdIdentifiersIdentifierIdResponse

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,9 @@
package com.mifos.core.data.repository

import androidx.paging.PagingData
import com.mifos.core.entity.client.Client
import com.mifos.core.objects.clients.Page
import com.mifos.room.entities.client.Client
import com.mifos.room.entities.client.Page
import kotlinx.coroutines.flow.Flow
import rx.Observable

/**
* Created by Aditya Gupta on 08/08/23.
Expand All @@ -22,5 +21,5 @@ interface ClientListRepository {

fun getAllClients(): Flow<PagingData<Client>>

fun allDatabaseClients(): Observable<Page<Client>>
fun allDatabaseClients(): Flow<Page<Client>>
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@
*/
package com.mifos.core.data.repository

import com.mifos.core.entity.client.Client
import com.mifos.core.entity.client.ClientPayload
import com.mifos.core.entity.organisation.Office
import com.mifos.core.entity.organisation.Staff
import com.mifos.core.entity.templates.clients.ClientsTemplate
import com.mifos.room.entities.client.Client
import com.mifos.room.entities.client.ClientPayload
import com.mifos.room.entities.organisation.Office
import com.mifos.room.entities.organisation.Staff
import com.mifos.room.entities.templates.clients.ClientsTemplate
import kotlinx.coroutines.flow.Flow
import okhttp3.MultipartBody
import okhttp3.ResponseBody
import rx.Observable

/**
* Created by Aditya Gupta on 10/08/23.
*/
interface CreateNewClientRepository {

fun clientTemplate(): Observable<ClientsTemplate>
fun clientTemplate(): Flow<ClientsTemplate>

suspend fun offices(): List<Office>

suspend fun getStaffInOffice(officeId: Int): List<Staff>

fun createClient(clientPayload: ClientPayload): Observable<Client>
fun createClient(clientPayload: ClientPayload): Flow<Client>

fun uploadClientImage(id: Int, file: MultipartBody.Part?): Observable<ResponseBody>
fun uploadClientImage(id: Int, file: MultipartBody.Part?): Flow<ResponseBody>
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,16 +14,17 @@ import androidx.paging.PagingConfig
import androidx.paging.PagingData
import com.mifos.core.data.pagingSource.ClientChargesPagingSource
import com.mifos.core.data.repository.ClientChargeRepository
import com.mifos.core.entity.client.Charges
import com.mifos.core.network.datamanager.DataManagerCharge
import com.mifos.room.entities.client.Charges
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject

/**
* Created by Aditya Gupta on 08/08/23.
*/
class ClientChargeRepositoryImp @Inject constructor(private val dataManagerCharge: DataManagerCharge) :
ClientChargeRepository {
class ClientChargeRepositoryImp @Inject constructor(
private val dataManagerCharge: DataManagerCharge,
) : ClientChargeRepository {

override fun getClientCharges(
clientId: Int,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,26 @@
package com.mifos.core.data.repositoryImp

import com.mifos.core.data.repository.ClientDetailsRepository
import com.mifos.core.entity.client.Client
import com.mifos.core.network.datamanager.DataManagerClient
import com.mifos.room.entities.accounts.ClientAccounts
import com.mifos.room.entities.client.Client
import kotlinx.coroutines.flow.Flow
import okhttp3.MultipartBody
import okhttp3.ResponseBody
import rx.Observable
import javax.inject.Inject

/**
* Created by Aditya Gupta on 06/08/23.
*/
class ClientDetailsRepositoryImp @Inject constructor(private val dataManagerClient: DataManagerClient) :
ClientDetailsRepository {
class ClientDetailsRepositoryImp @Inject constructor(
private val dataManagerClient: DataManagerClient,
) : ClientDetailsRepository {

override fun uploadClientImage(id: Int, file: MultipartBody.Part?): Observable<ResponseBody> {
override fun uploadClientImage(id: Int, file: MultipartBody.Part?): Flow<ResponseBody> {
return dataManagerClient.uploadClientImage(id, file)
}

override fun deleteClientImage(clientId: Int): Observable<ResponseBody> {
override fun deleteClientImage(clientId: Int): Flow<ResponseBody> {
return dataManagerClient.deleteClientImage(clientId)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,17 @@ package com.mifos.core.data.repositoryImp

import com.mifos.core.data.repository.ClientIdentifierDialogRepository
import com.mifos.core.network.datamanager.DataManagerClient
import com.mifos.core.objects.noncoreobjects.IdentifierCreationResponse
import com.mifos.core.objects.noncoreobjects.IdentifierPayload
import com.mifos.core.objects.noncoreobjects.IdentifierTemplate
import com.mifos.room.entities.noncore.IdentifierCreationResponse
import com.mifos.room.entities.noncore.IdentifierPayload
import com.mifos.room.entities.noncore.IdentifierTemplate
import javax.inject.Inject

/**
* Created by Aditya Gupta on 16/08/23.
*/
class ClientIdentifierDialogRepositoryImp @Inject constructor(private val dataManagerClient: DataManagerClient) :
ClientIdentifierDialogRepository {
class ClientIdentifierDialogRepositoryImp @Inject constructor(
private val dataManagerClient: DataManagerClient,
) : ClientIdentifierDialogRepository {

override suspend fun getClientIdentifierTemplate(clientId: Int): IdentifierTemplate {
return dataManagerClient.getClientIdentifierTemplate(clientId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,16 @@ package com.mifos.core.data.repositoryImp

import com.mifos.core.data.repository.ClientIdentifiersRepository
import com.mifos.core.network.datamanager.DataManagerClient
import com.mifos.core.objects.noncoreobjects.Identifier
import com.mifos.room.entities.noncore.Identifier
import org.openapitools.client.models.DeleteClientsClientIdIdentifiersIdentifierIdResponse
import javax.inject.Inject

/**
* Created by Aditya Gupta on 08/08/23.
*/
class ClientIdentifiersRepositoryImp @Inject constructor(private val dataManagerClient: DataManagerClient) :
ClientIdentifiersRepository {
class ClientIdentifiersRepositoryImp @Inject constructor(
private val dataManagerClient: DataManagerClient,
) : ClientIdentifiersRepository {

override suspend fun getClientIdentifiers(clientId: Int): List<Identifier> {
return dataManagerClient.getClientIdentifiers(clientId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,10 @@ import androidx.paging.PagingConfig
import androidx.paging.PagingData
import com.mifos.core.data.pagingSource.ClientListPagingSource
import com.mifos.core.data.repository.ClientListRepository
import com.mifos.core.entity.client.Client
import com.mifos.core.network.datamanager.DataManagerClient
import com.mifos.core.objects.clients.Page
import com.mifos.room.entities.client.Client
import com.mifos.room.entities.client.Page
import kotlinx.coroutines.flow.Flow
import rx.Observable
import javax.inject.Inject

/**
Expand All @@ -39,7 +38,7 @@ class ClientListRepositoryImp @Inject constructor(
).flow
}

override fun allDatabaseClients(): Observable<Page<Client>> {
override fun allDatabaseClients(): Flow<Page<Client>> {
return dataManagerClient.allDatabaseClients
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ import com.mifos.core.entity.templates.clients.ClientsTemplate
import com.mifos.core.network.datamanager.DataManagerClient
import com.mifos.core.network.datamanager.DataManagerOffices
import com.mifos.core.network.datamanager.DataManagerStaff
import kotlinx.coroutines.flow.Flow
import okhttp3.MultipartBody
import okhttp3.ResponseBody
import rx.Observable
import javax.inject.Inject

/**
Expand All @@ -32,7 +32,7 @@ class CreateNewClientRepositoryImp @Inject constructor(
private val dataManagerStaff: DataManagerStaff,
) : CreateNewClientRepository {

override fun clientTemplate(): Observable<ClientsTemplate> {
override fun clientTemplate(): Flow<ClientsTemplate> {
return dataManagerClient.clientTemplate
}

Expand All @@ -44,11 +44,11 @@ class CreateNewClientRepositoryImp @Inject constructor(
return dataManagerStaff.getStaffInOffice(officeId)
}

override fun createClient(clientPayload: ClientPayload): Observable<Client> {
override fun createClient(clientPayload: ClientPayload): Flow<Client> {
return dataManagerClient.createClient(clientPayload)
}

override fun uploadClientImage(id: Int, file: MultipartBody.Part?): Observable<ResponseBody> {
override fun uploadClientImage(id: Int, file: MultipartBody.Part?): Flow<ResponseBody> {
return dataManagerClient.uploadClientImage(id, file)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ data class ChargeCalculationType(
@JvmField
@PrimaryKey
@ColumnInfo(name = "id")
var id: Int? = null,
val id: Int? = null,

@ColumnInfo(name = "code")
@JvmField
var code: String? = null,
val code: String? = null,

@ColumnInfo(name = "value")
@JvmField
var value: String? = null,
val value: String? = null,
) : Parcelable
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ import kotlinx.parcelize.Parcelize
data class ChargeTimeType(
@PrimaryKey
@ColumnInfo(name = "id")
var id: Int? = null,
val id: Int? = null,

@ColumnInfo(name = "code")
var code: String? = null,
val code: String? = null,

@ColumnInfo(name = "value")
var value: String? = null,
val value: String? = null,
) : Parcelable
Loading