expandable carbs query
This commit is contained in:
parent
299d0a9b01
commit
d9ceeb043e
|
@ -330,6 +330,8 @@ open class AppRepository @Inject internal constructor(
|
|||
private fun Single<List<Carbs>>.expand() = this.map { it.map(::expandCarbs).flatten() }
|
||||
private fun Single<List<Carbs>>.filterOutExtended() = this.map { it.filter { c -> c.duration == 0L } }
|
||||
private fun Single<List<Carbs>>.fromTo(from: Long, to: Long) = this.map { it.filter { c -> c.timestamp in from..to } }
|
||||
private fun Single<List<Carbs>>.until(to: Long) = this.map { it.filter { c -> c.timestamp <= to } }
|
||||
private fun Single<List<Carbs>>.from(start: Long) = this.map { it.filter { c -> c.timestamp >= start } }
|
||||
private fun Single<List<Carbs>>.sort() = this.map { it.sortedBy { c -> c.timestamp } }
|
||||
|
||||
/*
|
||||
|
@ -386,7 +388,7 @@ open class AppRepository @Inject internal constructor(
|
|||
.subscribeOn(Schedulers.io())
|
||||
|
||||
fun getCarbsDataFromTimeToTimeExpanded(from: Long, to: Long, ascending: Boolean): Single<List<Carbs>> =
|
||||
database.carbsDao.getCarbsFromTimeToTime(from - timeBackForExpand, to)
|
||||
database.carbsDao.getCarbsFromTimeToTimeExpandable(from, to)
|
||||
.expand()
|
||||
.fromTo(from, to)
|
||||
.sort()
|
||||
|
@ -399,7 +401,7 @@ open class AppRepository @Inject internal constructor(
|
|||
.subscribeOn(Schedulers.io())
|
||||
|
||||
fun getCarbsIncludingInvalidFromTimeToTimeExpanded(from: Long, to: Long, ascending: Boolean): Single<List<Carbs>> =
|
||||
database.carbsDao.getCarbsIncludingInvalidFromTimeToTime(from - timeBackForExpand, to)
|
||||
database.carbsDao.getCarbsIncludingInvalidFromTimeToTimeExpandable(from, to)
|
||||
.expand()
|
||||
.fromTo(from, to)
|
||||
.sort()
|
||||
|
|
|
@ -38,12 +38,18 @@ internal interface CarbsDao : TraceableDao<Carbs> {
|
|||
@Query("SELECT * FROM $TABLE_CARBS WHERE isValid = 1 AND timestamp >= :from AND timestamp <= :to AND referenceId IS NULL ORDER BY id DESC")
|
||||
fun getCarbsFromTimeToTime(from: Long, to: Long): Single<List<Carbs>>
|
||||
|
||||
@Query("SELECT * FROM $TABLE_CARBS WHERE isValid = 1 AND timestamp + duration >= :from AND timestamp <= :to AND referenceId IS NULL ORDER BY id DESC")
|
||||
fun getCarbsFromTimeToTimeExpandable(from: Long, to: Long): Single<List<Carbs>>
|
||||
|
||||
@Query("SELECT * FROM $TABLE_CARBS WHERE timestamp >= :timestamp AND referenceId IS NULL ORDER BY id DESC")
|
||||
fun getCarbsIncludingInvalidFromTime(timestamp: Long): Single<List<Carbs>>
|
||||
|
||||
@Query("SELECT * FROM $TABLE_CARBS WHERE timestamp >= :from AND timestamp <= :to AND referenceId IS NULL ORDER BY id DESC")
|
||||
fun getCarbsIncludingInvalidFromTimeToTime(from: Long, to: Long): Single<List<Carbs>>
|
||||
|
||||
@Query("SELECT * FROM $TABLE_CARBS WHERE timestamp >= :from AND timestamp <= :to AND referenceId IS NULL ORDER BY id DESC")
|
||||
fun getCarbsIncludingInvalidFromTimeToTimeExpandable(from: Long, to: Long): Single<List<Carbs>>
|
||||
|
||||
// This query will be used with v3 to get all changed records
|
||||
@Query("SELECT * FROM $TABLE_CARBS WHERE id > :id AND referenceId IS NULL OR id IN (SELECT DISTINCT referenceId FROM $TABLE_CARBS WHERE id > :id) ORDER BY id ASC")
|
||||
fun getModifiedFrom(id: Long): Single<List<Carbs>>
|
||||
|
|
Loading…
Reference in a new issue