2021-04-22 11:47:18 +02:00
|
|
|
package org.pixeldroid.app.utils.db.dao
|
2020-05-14 20:14:41 +02:00
|
|
|
|
2021-03-15 19:54:42 +01:00
|
|
|
import androidx.room.*
|
2021-04-22 11:47:18 +02:00
|
|
|
import org.pixeldroid.app.utils.db.entities.InstanceDatabaseEntity
|
2020-05-14 20:14:41 +02:00
|
|
|
|
|
|
|
@Dao
|
|
|
|
interface InstanceDao {
|
|
|
|
@Query("SELECT * FROM instances")
|
|
|
|
fun getAll(): List<InstanceDatabaseEntity>
|
|
|
|
|
2022-08-21 00:24:02 +02:00
|
|
|
@Query("SELECT * FROM instances WHERE uri=:instanceUri")
|
2022-02-14 13:56:40 +01:00
|
|
|
fun getInstance(instanceUri: String): InstanceDatabaseEntity
|
|
|
|
|
2024-01-23 17:27:45 +01:00
|
|
|
|
|
|
|
@Query("SELECT * FROM instances WHERE uri=(SELECT users.instance_uri FROM users WHERE isActive=1)")
|
|
|
|
fun getActiveInstance(): InstanceDatabaseEntity
|
|
|
|
|
2021-03-15 19:54:42 +01:00
|
|
|
/**
|
|
|
|
* Insert an instance, if it already exists return -1
|
|
|
|
*/
|
|
|
|
@Insert(onConflict = OnConflictStrategy.IGNORE)
|
|
|
|
fun insertInstance(instance: InstanceDatabaseEntity): Long
|
|
|
|
|
|
|
|
@Update
|
|
|
|
fun updateInstance(instance: InstanceDatabaseEntity)
|
|
|
|
|
|
|
|
@Transaction
|
|
|
|
fun insertOrUpdate(instance: InstanceDatabaseEntity) {
|
|
|
|
if (insertInstance(instance) == -1L) {
|
|
|
|
updateInstance(instance)
|
|
|
|
}
|
|
|
|
}
|
2020-05-14 20:14:41 +02:00
|
|
|
}
|