don't use lateinit in CacheController()
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-02-10 17:42:44 +01:00
parent f01916b363
commit 3aa27dff4a
3 changed files with 17 additions and 17 deletions

View File

@ -55,8 +55,8 @@ class CacheController {
companion object{
private val logger: Logger = LoggerFactory.getLogger(CacheController::class.java)
lateinit var courseList: CourseList
lateinit var mensaMenu: MensaMenu
var courseList = CoursesList(CoursesMeta(0, 0), ArrayList())
var mensaMenu = MensaMenu(MensaMeta(0,""), MensaWeek(), MensaWeek())
var timetableList = ArrayList<TimetableCourseWeek>() // this list contains all timetables
/**
@ -141,12 +141,12 @@ class CacheController {
*/
private fun asyncUpdateCourseList() = GlobalScope.launch {
CourseListParser().getCourseLinks(StartupController.courseListURL)?.let {
courseList = CourseList(
CourseMeta(System.currentTimeMillis() / 1000, it.size), it
courseList = CoursesList(
CoursesMeta(System.currentTimeMillis() / 1000, it.size), it
)
}
logger.info("updated courses successful at ${Date(courseList.meta.updateTime * 1000)}")
logger.info("Updated courses successful at ${Date(courseList.meta.updateTime * 1000)}")
}
/**
@ -164,7 +164,7 @@ class CacheController {
)
}
logger.info("updated mensamenu successful at ${Date(mensaMenu.meta.updateTime * 1000)}")
logger.info("Updated mensamenu successful at ${Date(mensaMenu.meta.updateTime * 1000)}")
}
/**
@ -173,7 +173,7 @@ class CacheController {
* a FixedThreadPool is used to make parallel requests for faster updates
*/
private fun asyncUpdateTimetables() = GlobalScope.launch {
logger.info("updating ${timetableList.size} timetables ...")
logger.info("Updating ${timetableList.size} timetables ...")
// create a new ThreadPool with 5 threads
val executor = Executors.newFixedThreadPool(5)
@ -189,7 +189,7 @@ class CacheController {
}
} catch (ex: Exception) {
logger.error("error while updating the timetables", ex)
logger.error("Error while updating the timetables", ex)
} finally {
executor.shutdown()
}
@ -214,16 +214,16 @@ class CacheController {
* runBlocking: otherwise the api would return no data to requests for a few seconds after startup
*/
private fun initUpdates() = runBlocking {
// get all courses on startup
// get all course links on startup, make sure there are course links
val jobCourseUpdate = GlobalScope.async {
CourseListParser().getCourseLinks(StartupController.courseListURL)?.let {
courseList = CourseList(
CourseMeta(System.currentTimeMillis() / 1000, it.size), it
courseList = CoursesList(
CoursesMeta(System.currentTimeMillis() / 1000, it.size), it
)
}
}
// get the current and next weeks mensa menus
// get the current and next weeks mensa menu
val jobMensa = GlobalScope.async{
val mensaCurrentWeek = MensaParser().getMensaMenu(StartupController.mensaMenuURL)
val mensaNextWeek = MensaParser().getMensaMenu(MensaParser().getMenuLinkNextWeek(StartupController.mensaMenuURL))
@ -239,7 +239,7 @@ class CacheController {
jobCourseUpdate.await()
jobMensa.await()
logger.info("init updates successful")
logger.info("Initial updates successful")
}
/**