Skip to content

Commit 50a4878

Browse files
authored
Merge pull request #1 from danbeldev/develop
feat: add afterHandle to Dispatcher for post-processing responses
2 parents 807a28b + bcb4365 commit 50a4878

File tree

2 files changed

+45
-3
lines changed

2 files changed

+45
-3
lines changed

alice-ktx/src/test/kotlin/com/github/alice/ktx/middleware/MiddlewareTest.kt

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import org.junit.Test
88
class MiddlewareTest {
99

1010
@Test
11-
fun `should register inner middleware via DSL`() {
11+
fun `should register inner middleware via DSL`() {
1212
val dispatcher = Dispatcher()
1313

14-
dispatcher.innerMiddleware { response { } }
14+
dispatcher.innerMiddleware { response { } }
1515

1616
Assert.assertEquals(1, dispatcher.middlewares[MiddlewareType.INNER]?.size)
1717
}
@@ -20,8 +20,17 @@ class MiddlewareTest {
2020
fun `should register outer middleware via DSL`() {
2121
val dispatcher = Dispatcher()
2222

23-
dispatcher.outerMiddleware { response { } }
23+
dispatcher.outerMiddleware { response { } }
2424

2525
Assert.assertEquals(1, dispatcher.middlewares[MiddlewareType.OUTER]?.size)
2626
}
27+
28+
@Test
29+
fun `should register after handle via DSL`() {
30+
val dispatcher = Dispatcher()
31+
32+
dispatcher.afterHandle { _, res -> res }
33+
34+
Assert.assertEquals(1, dispatcher.postMiddlewares.size)
35+
}
2736
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package com.github.examples
2+
3+
import com.github.alice.ktx.dispatch
4+
import com.github.alice.ktx.handlers.impl.request
5+
import com.github.alice.ktx.middleware.afterHandle
6+
import com.github.alice.ktx.models.response.response
7+
import com.github.alice.ktx.skill
8+
import com.github.alice.ktx.webhook.impl.ktorWebhookServer
9+
10+
fun main() {
11+
skill {
12+
webhookServer = ktorWebhookServer {
13+
port = 8080
14+
path = "/alice"
15+
}
16+
17+
dispatch {
18+
afterHandle { processRequestEnvironment, messageResponse ->
19+
messageResponse.copy(
20+
response = messageResponse.response?.copy(
21+
text = messageResponse.response?.text + processRequestEnvironment.message.version
22+
)
23+
)
24+
}
25+
26+
request {
27+
response {
28+
text = "test after handel, version alice: "
29+
}
30+
}
31+
}
32+
}.run()
33+
}

0 commit comments

Comments
 (0)