count courseList requests seperat

This commit is contained in:
Jannik 2020-02-27 17:42:19 +01:00
parent be95af43c2
commit 2f1f65eba0
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
3 changed files with 24 additions and 13 deletions

View File

@ -30,9 +30,9 @@ import org.mosad.thecitadelofricks.controller.CacheController.Companion.getTimet
import org.mosad.thecitadelofricks.controller.CacheController.Companion.mensaMenu import org.mosad.thecitadelofricks.controller.CacheController.Companion.mensaMenu
import org.mosad.thecitadelofricks.controller.StartupController import org.mosad.thecitadelofricks.controller.StartupController
import org.mosad.thecitadelofricks.controller.StatusController.Companion.getStatus import org.mosad.thecitadelofricks.controller.StatusController.Companion.getStatus
import org.mosad.thecitadelofricks.controller.StatusController.Companion.updateCourseListRequests
import org.mosad.thecitadelofricks.controller.StatusController.Companion.updateMensaMenuRequests import org.mosad.thecitadelofricks.controller.StatusController.Companion.updateMensaMenuRequests
import org.mosad.thecitadelofricks.controller.StatusController.Companion.updateTimetableRequests import org.mosad.thecitadelofricks.controller.StatusController.Companion.updateTimetableRequests
import org.mosad.thecitadelofricks.controller.StatusController.Companion.updateTotalRequests
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RequestMapping
@ -67,14 +67,13 @@ class APIController {
@RequestMapping("/courseList") @RequestMapping("/courseList")
fun courseList(): CoursesList { fun courseList(): CoursesList {
logger.info("courseList request at ${LocalDateTime.now()}!") logger.info("courseList request at ${LocalDateTime.now()}!")
updateTotalRequests() updateCourseListRequests()
return courseList return courseList
} }
@RequestMapping("/mensamenu") @RequestMapping("/mensamenu")
fun mensamenu(): MensaMenu { fun mensamenu(): MensaMenu {
logger.info("mensamenu request at ${LocalDateTime.now()}!") logger.info("mensamenu request at ${LocalDateTime.now()}!")
updateTotalRequests()
updateMensaMenuRequests() updateMensaMenuRequests()
return mensaMenu return mensaMenu
} }
@ -85,7 +84,6 @@ class APIController {
@RequestParam(value = "week", defaultValue = "0") week: Int @RequestParam(value = "week", defaultValue = "0") week: Int
): TimetableCourseWeek { ): TimetableCourseWeek {
logger.info("timetable request at ${LocalDateTime.now()}!") logger.info("timetable request at ${LocalDateTime.now()}!")
updateTotalRequests()
updateTimetableRequests(courseName) updateTimetableRequests(courseName)
return getTimetable(courseName, week) return getTimetable(courseName, week)
} }
@ -96,7 +94,7 @@ class APIController {
@RequestParam(value = "week", defaultValue = "0") week: Int @RequestParam(value = "week", defaultValue = "0") week: Int
): HashSet<String> { ): HashSet<String> {
logger.info("lessonSubjectList request at ${LocalDateTime.now()}!") logger.info("lessonSubjectList request at ${LocalDateTime.now()}!")
updateTotalRequests() updateTimetableRequests(courseName)
return getLessonSubjectList(courseName, week) return getLessonSubjectList(courseName, week)
} }
@ -107,7 +105,7 @@ class APIController {
@RequestParam(value = "week", defaultValue = "0") week: Int @RequestParam(value = "week", defaultValue = "0") week: Int
): ArrayList<Lesson> { ): ArrayList<Lesson> {
logger.info("lesson request at ${LocalDateTime.now()}!") logger.info("lesson request at ${LocalDateTime.now()}!")
updateTotalRequests() updateTimetableRequests(courseName)
return getLesson(courseName, lessonSubject, week) return getLesson(courseName, lessonSubject, week)
} }

View File

@ -69,8 +69,9 @@ data class Status(
val uptime: String, val uptime: String,
val apiVersion: String, val apiVersion: String,
val softwareVersion: String, val softwareVersion: String,
val requestCount: Int, val totalRequests: Int,
val mensaMenuRequests: Int, val mensaMenuRequests: Int,
val courseListRequests: Int,
val timetableRequests: ArrayList<TimetableCounter>, val timetableRequests: ArrayList<TimetableCounter>,
val timetableListSize: Int, val timetableListSize: Int,
val coursesLastUpdate: Date, val coursesLastUpdate: Date,

View File

@ -42,27 +42,34 @@ class StatusController {
private var totalRequests = 0 private var totalRequests = 0
private var mensaMenuRequests = 0 private var mensaMenuRequests = 0
private var courseListRequests = 0
private var timetableRequests = ArrayList<TimetableCounter>() private var timetableRequests = ArrayList<TimetableCounter>()
fun updateTotalRequests() { /**
* if a mensamenu/courseList/timetable is requested update the specific and total request count
*/
fun updateMensaMenuRequests() {
mensaMenuRequests++
totalRequests++ totalRequests++
} }
fun updateMensaMenuRequests() { fun updateCourseListRequests() {
mensaMenuRequests++ courseListRequests++
totalRequests++
} }
/**
* if a timetable is requested update the request counter
*/
fun updateTimetableRequests(courseName: String) { fun updateTimetableRequests(courseName: String) {
timetableRequests.stream().filter { it.courseName == courseName }.findFirst().ifPresentOrElse({ timetableRequests.stream().filter { it.courseName == courseName }.findFirst().ifPresentOrElse({
it.requests++ it.requests++
}, { }, {
timetableRequests.add(TimetableCounter(courseName, 1)) timetableRequests.add(TimetableCounter(courseName, 1))
}) })
totalRequests++
} }
/**
* getters and setters
*/
fun getTotalRequests(): Int { fun getTotalRequests(): Int {
return totalRequests return totalRequests
} }
@ -71,6 +78,10 @@ class StatusController {
return mensaMenuRequests return mensaMenuRequests
} }
fun getCourseListRequests(): Int {
return courseListRequests
}
fun getTimetableRequests(): ArrayList<TimetableCounter> { fun getTimetableRequests(): ArrayList<TimetableCounter> {
return timetableRequests return timetableRequests
} }
@ -108,6 +119,7 @@ class StatusController {
softwareVersion, softwareVersion,
getTotalRequests(), getTotalRequests(),
getMensaMenuRequests(), getMensaMenuRequests(),
getCourseListRequests(),
getTimetableRequests(), getTimetableRequests(),
CacheController.timetableList.size, CacheController.timetableList.size,
Date(CacheController.courseList.meta.updateTime * 1000), Date(CacheController.courseList.meta.updateTime * 1000),