@@ -48,29 +48,37 @@ class ScheduleService(
4848 wednesday = getSchedule(Day .WEDNESDAY ).data?.map { it.toDayEntity(Day .WEDNESDAY ) }.orEmpty()
4949 )
5050
51- val documentsToInsert = parseTopDataToDocuments(response)
52- if (documentsToInsert .isNotEmpty()) schedules.insertMany(documentsToInsert )
51+ val elements = parseTopDataToDocuments(response)
52+ if (elements .isNotEmpty()) schedules.insertMany(elements )
5353 timers.update(TimerKey .SCHEDULE )
5454
55- call.respond(HttpStatusCode .OK , Json .encodeToString(response ))
55+ call.respond(HttpStatusCode .OK , elements.documentWeekMapper( ))
5656 } else {
5757 val elements = schedules.find().toList()
58- val directory = elements.map { documentToScheduleDayEntity(it) }
59- val json = Json .encodeToString(directory)
60- call.respond(HttpStatusCode .OK , json)
58+ call.respond(HttpStatusCode .OK , elements.documentWeekMapper())
6159 }
6260 }
6361
6462 suspend fun getScheduleByDay (call : RoutingCall ) {
6563 val param = call.parameters[" day" ] ? : throw IllegalArgumentException (ErrorMessages .InvalidMalId .message)
66- if (parseDay(param) == null ) call.respond(HttpStatusCode .BadRequest , ErrorResponse (ErrorMessages .InvalidDay .message))
64+ if (parseDay(param) == null ) call.respond(
65+ HttpStatusCode .BadRequest ,
66+ ErrorResponse (ErrorMessages .InvalidDay .message)
67+ )
6768
6869 val elements = schedules.find(Filters .eq(" day" , param.lowercase())).toList()
6970 val directory = elements.map { documentToScheduleDayEntity(it) }
7071 val json = Json .encodeToString(directory)
7172 call.respond(HttpStatusCode .OK , json)
7273 }
7374
74- private suspend fun getSchedule (day : Day ) =
75- RestClient .request(BaseUrls .JIKAN + Endpoints .SCHEDULES + " /" + day, ScheduleEntity .serializer())
75+ private suspend fun getSchedule (day : Day ) = RestClient .requestWithDelay(
76+ url = BaseUrls .JIKAN + Endpoints .SCHEDULES + " /" + day,
77+ deserializer = ScheduleEntity .serializer()
78+ )
79+
80+ private fun List<Document>.documentWeekMapper (): String {
81+ val directory = map { documentToScheduleDayEntity(it) }
82+ return Json .encodeToString(directory)
83+ }
7684}
0 commit comments