1
1
package by.jprof.telegram.bot.eval.evaluator
2
2
3
3
import 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
6
4
import 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
7
7
import com.amazonaws.services.lambda.runtime.Context
8
8
import com.amazonaws.services.lambda.runtime.RequestStreamHandler
9
+ import kotlinx.coroutines.runBlocking
9
10
import kotlinx.serialization.ExperimentalSerializationApi
10
11
import kotlinx.serialization.decodeFromString
11
12
import kotlinx.serialization.json.Json
@@ -27,14 +28,16 @@ class Evaluator : RequestStreamHandler, KoinComponent {
27
28
init {
28
29
startKoin {
29
30
modules(
30
- jsonModule
31
+ jsonModule,
32
+ pipelineModule,
31
33
)
32
34
}
33
35
}
34
36
35
37
private val json: Json by inject()
38
+ private val pipeline: EvalPipeline by inject()
36
39
37
- override fun handleRequest (input : InputStream , output : OutputStream , context : Context ) {
40
+ override fun handleRequest (input : InputStream , output : OutputStream , context : Context ) = runBlocking {
38
41
val payload = input.bufferedReader().use { it.readText() }
39
42
40
43
logger.debug(" Payload: {}" , payload)
@@ -43,7 +46,7 @@ class Evaluator : RequestStreamHandler, KoinComponent {
43
46
44
47
logger.debug(" Parsed event: {}" , evalEvent)
45
48
46
- val evalResponse = EvalResponse ( Language . UNKNOWN )
49
+ val evalResponse = pipeline.process(evalEvent )
47
50
48
51
output.buffered().use { json.encodeToStream(evalResponse, it) }
49
52
}
0 commit comments