Implemented canteen scraper/parser functionality

This commit is contained in:
denizk0461
2023-04-16 18:19:06 +02:00
parent 2117535f63
commit 5543eb4e32
15 changed files with 270 additions and 89 deletions
@@ -4,6 +4,7 @@ import androidx.lifecycle.LiveData
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.Query
import com.denizk0461.studip.model.CanteenOffer
import com.denizk0461.studip.model.StudIPEvent
@Dao
@@ -20,4 +21,13 @@ interface EventDAO {
@Query("DELETE FROM events")
fun nukeEvents()
@get:Query("SELECT * FROM offers ORDER BY id")
val allOffers: LiveData<List<CanteenOffer>>
@Insert
fun insertOffers(offers: List<CanteenOffer>)
@Query("DELETE from offers")
fun nukeOffers()
}
@@ -4,9 +4,10 @@ import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
import com.denizk0461.studip.model.CanteenOffer
import com.denizk0461.studip.model.StudIPEvent
@Database(entities = [StudIPEvent::class], version = 3)
@Database(entities = [StudIPEvent::class, CanteenOffer::class], version = 6)
abstract class EventDatabase : RoomDatabase() {
abstract fun dao(): EventDAO
@@ -2,6 +2,7 @@ package com.denizk0461.studip.db
import android.app.Application
import androidx.lifecycle.LiveData
import com.denizk0461.studip.model.CanteenOffer
import com.denizk0461.studip.model.StudIPEvent
class EventRepository(app: Application) {
@@ -10,7 +11,12 @@ class EventRepository(app: Application) {
val allEvents: LiveData<List<StudIPEvent>> = dao.allEvents
fun nukeEvents() { dao.nukeEvents() }
fun insertEvent(event: StudIPEvent) { dao.insertEvent(event) }
fun insertEvents(events: List<StudIPEvent>) { dao.insertEvents(events) }
fun nukeEvents() { dao.nukeEvents() }
val allOffers: LiveData<List<CanteenOffer>> = dao.allOffers
fun insertOffers(offers: List<CanteenOffer>) { dao.insertOffers(offers) }
fun nukeOffers() { dao.nukeOffers() }
}