Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 0 additions & 42 deletions batch/src/main/kotlin/pre2025category/api/GoogleDocsApi.kt

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package com.wafflestudio.snutt.sugangsnu.common.service

import com.wafflestudio.snutt.common.enums.Semester
import com.wafflestudio.snutt.lectures.data.Lecture
import com.wafflestudio.snutt.pre2025category.service.CategoryPre2025FetchService
import com.wafflestudio.snutt.sugangsnu.common.SugangSnuRepository
import com.wafflestudio.snutt.sugangsnu.common.utils.SugangSnuClassTimeUtils
import org.apache.poi.hssf.usermodel.HSSFWorkbook
import org.apache.poi.ss.usermodel.Cell
import org.slf4j.LoggerFactory
import org.springframework.core.io.ResourceLoader
import org.springframework.stereotype.Service

interface SugangSnuFetchService {
Expand All @@ -20,16 +20,27 @@ interface SugangSnuFetchService {
@Service
class SugangSnuFetchServiceImpl(
private val sugangSnuRepository: SugangSnuRepository,
private val categoryPre2025FetchService: CategoryPre2025FetchService,
private val resourceLoader: ResourceLoader,
) : SugangSnuFetchService {
private val log = LoggerFactory.getLogger(javaClass)
private val quotaRegex = """(?<quota>\d+)(\s*\((?<quotaForCurrentStudent>\d+)\))?""".toRegex()
private val courseNumberCategoryPre2025Map: Map<String, String> by lazy {
resourceLoader
.getResource("classpath:categoryPre2025.txt")
.inputStream
.bufferedReader()
.lineSequence()
.filter { it.contains(":") }
.associate { line ->
val (courseNumber, category) = line.split(":", limit = 2)
courseNumber to category
}
}

override suspend fun getSugangSnuLectures(
year: Int,
semester: Semester,
): List<Lecture> {
val courseNumberCategoryPre2025Map = categoryPre2025FetchService.getCategoriesPre2025()
val koreanLectureXlsx = sugangSnuRepository.getSugangSnuLectures(year, semester, "ko")
val englishLectureXlsx = sugangSnuRepository.getSugangSnuLectures(year, semester, "en")
val koreanSheet = HSSFWorkbook(koreanLectureXlsx.asInputStream()).getSheetAt(0)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.wafflestudio.snutt.sugangsnu.job.sync.service

import com.wafflestudio.snutt.bookmark.repository.BookmarkRepository
import com.wafflestudio.snutt.common.exception.CoursebookRecentThanSugangSnuException
import com.wafflestudio.snutt.coursebook.data.Coursebook
import com.wafflestudio.snutt.coursebook.repository.CoursebookRepository
import com.wafflestudio.snutt.lecturebuildings.data.Campus
Expand Down Expand Up @@ -106,7 +107,7 @@ class SugangSnuSyncServiceImpl(
old,
new,
Lecture::class.memberProperties.filter {
it != Lecture::id && it.get(old) != it.get(new)
it != Lecture::id && it != Lecture::evInfo && it.get(old) != it.get(new)
},
)
}
Expand Down Expand Up @@ -184,7 +185,10 @@ class SugangSnuSyncServiceImpl(
private suspend fun syncLectures(compareResult: SugangSnuLectureCompareResult) {
val updatedLectures =
compareResult.updatedLectureList.map { diff ->
diff.newData.apply { id = diff.oldData.id }
diff.newData.apply {
id = diff.oldData.id
evInfo = diff.oldData.evInfo
}
}

lectureService.upsertLectures(compareResult.createdLectureList)
Expand Down Expand Up @@ -373,8 +377,18 @@ class SugangSnuSyncServiceImpl(
lectureBuildingService.updateLectureBuildings(updatedPlaceInfos)
}

private fun Coursebook.isSyncedToSugangSnu(sugangSnuCoursebookCondition: SugangSnuCoursebookCondition): Boolean =
this.year == sugangSnuCoursebookCondition.latestYear && this.semester == sugangSnuCoursebookCondition.latestSemester
private fun Coursebook.isSyncedToSugangSnu(sugangSnuCoursebookCondition: SugangSnuCoursebookCondition): Boolean {
val sugangSnuCoursebook =
Coursebook(
year = sugangSnuCoursebookCondition.latestYear,
semester = sugangSnuCoursebookCondition.latestSemester,
)
return when {
sugangSnuCoursebook > this -> false
sugangSnuCoursebook < this -> throw CoursebookRecentThanSugangSnuException
else -> true
}
}
}

data class ParsedTags(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"resources": {
"includes": [
{ "pattern": "org/apache/xmlbeans/.*\\.properties" },
{ "pattern": "org/apache/.*\\.xsb" }
{ "pattern": "org/apache/.*\\.xsb" },
{ "pattern": "categoryPre2025.txt" }
]
}
}
Loading