@@ -48,29 +48,37 @@ class ScheduleService(
48
48
wednesday = getSchedule(Day .WEDNESDAY ).data?.map { it.toDayEntity(Day .WEDNESDAY ) }.orEmpty()
49
49
)
50
50
51
- val documentsToInsert = parseTopDataToDocuments(response)
52
- if (documentsToInsert .isNotEmpty()) schedules.insertMany(documentsToInsert )
51
+ val elements = parseTopDataToDocuments(response)
52
+ if (elements .isNotEmpty()) schedules.insertMany(elements )
53
53
timers.update(TimerKey .SCHEDULE )
54
54
55
- call.respond(HttpStatusCode .OK , Json .encodeToString(response ))
55
+ call.respond(HttpStatusCode .OK , elements.documentWeekMapper( ))
56
56
} else {
57
57
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())
61
59
}
62
60
}
63
61
64
62
suspend fun getScheduleByDay (call : RoutingCall ) {
65
63
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
+ )
67
68
68
69
val elements = schedules.find(Filters .eq(" day" , param.lowercase())).toList()
69
70
val directory = elements.map { documentToScheduleDayEntity(it) }
70
71
val json = Json .encodeToString(directory)
71
72
call.respond(HttpStatusCode .OK , json)
72
73
}
73
74
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
+ }
76
84
}
0 commit comments