11package by.jprof.telegram.bot.eval.evaluator
22
33import by.jprof.telegram.bot.eval.dto.EvalEvent
4- import by.jprof.telegram.bot.eval.dto.EvalResponse
5- import by.jprof.telegram.bot.eval.dto.Language
64import by.jprof.telegram.bot.eval.evaluator.config.jsonModule
5+ import by.jprof.telegram.bot.eval.evaluator.config.pipelineModule
6+ import by.jprof.telegram.bot.eval.evaluator.middleware.EvalPipeline
77import com.amazonaws.services.lambda.runtime.Context
88import com.amazonaws.services.lambda.runtime.RequestStreamHandler
9+ import kotlinx.coroutines.runBlocking
910import kotlinx.serialization.ExperimentalSerializationApi
1011import kotlinx.serialization.decodeFromString
1112import kotlinx.serialization.json.Json
@@ -27,14 +28,16 @@ class Evaluator : RequestStreamHandler, KoinComponent {
2728 init {
2829 startKoin {
2930 modules(
30- jsonModule
31+ jsonModule,
32+ pipelineModule,
3133 )
3234 }
3335 }
3436
3537 private val json: Json by inject()
38+ private val pipeline: EvalPipeline by inject()
3639
37- override fun handleRequest (input : InputStream , output : OutputStream , context : Context ) {
40+ override fun handleRequest (input : InputStream , output : OutputStream , context : Context ) = runBlocking {
3841 val payload = input.bufferedReader().use { it.readText() }
3942
4043 logger.debug(" Payload: {}" , payload)
@@ -43,7 +46,7 @@ class Evaluator : RequestStreamHandler, KoinComponent {
4346
4447 logger.debug(" Parsed event: {}" , evalEvent)
4548
46- val evalResponse = EvalResponse ( Language . UNKNOWN )
49+ val evalResponse = pipeline.process(evalEvent )
4750
4851 output.buffered().use { json.encodeToStream(evalResponse, it) }
4952 }
0 commit comments