Skip to content

Commit a40ffde

Browse files
authored
Merge pull request #1 from unblu/feature/lower-level-api-for-outbound-requests
Feature/lower level api for outbound requests
2 parents 4f2cc36 + a9c57e1 commit a40ffde

File tree

4 files changed

+44
-6
lines changed

4 files changed

+44
-6
lines changed

build.gradle

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ java {
1616
}
1717

1818
repositories {
19+
mavenLocal()
1920
mavenCentral()
2021
}
2122

@@ -26,8 +27,13 @@ wrapper {
2627

2728
dependencies {
2829
implementation 'org.springframework.boot:spring-boot-starter-webflux'
29-
implementation 'com.unblu.middleware:unblu-middleware-lib:1.5.5'
30+
implementation 'com.unblu.middleware:unblu-middleware-lib:1.7.0'
3031
implementation 'com.unblu.openapi:jersey3-client-v4:8.24.0'
3132
implementation 'org.projectlombok:lombok:1.18.34'
3233
annotationProcessor 'org.projectlombok:lombok:1.18.34'
34+
35+
// Logging
36+
implementation 'ch.qos.logback.contrib:logback-json-classic:0.1.5'
37+
implementation 'ch.qos.logback.contrib:logback-jackson:0.1.5'
38+
implementation 'net.logstash.logback:logstash-logback-encoder:7.3'
3339
}

src/main/java/com/unblu/middleware/test/TestMiddlewareService.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.unblu.middleware.bots.annotation.UnbluBots;
44
import com.unblu.middleware.bots.service.DialogBotService;
5+
import com.unblu.middleware.common.entity.ContextSpec;
56
import com.unblu.middleware.webhooks.annotation.UnbluWebhooks;
67
import com.unblu.middleware.webhooks.service.WebhookHandlerService;
78
import com.unblu.webapi.jersey.v4.api.BotsApi;
@@ -34,20 +35,24 @@ public class TestMiddlewareService implements ApplicationRunner {
3435
@Override
3536
public void run(ApplicationArguments args) {
3637
// accept every onboarding offer
37-
dialogBotService.acceptOnboardingOfferIf(_o -> Mono.just(true));
38+
dialogBotService.acceptOnboardingOfferIf(_o -> Mono.just(true)
39+
.doOnNext(_r -> log.info("Accepting as usual")));
3840

3941
// greet the user when a dialog is opened
4042
dialogBotService.onDialogOpen(r ->
41-
Mono.fromRunnable(() -> sendMessage(r.getDialogToken(), "Hello, I am a bot!")));
43+
Mono.fromRunnable(() -> sendMessage(r.getDialogToken(), "Hello, I am a bot!")));
4244

4345
// echo every message back to the user
4446
dialogBotService.onDialogMessage(r ->
45-
Mono.fromRunnable(() -> echoIfSentByVisitor(r)));
47+
Mono.fromRunnable(() -> echoIfSentByVisitor(r)));
4648

4749
// log every message sent anywhere using a webhook handler
4850
webhookHandlerService.onWebhook(eventName("conversation.new_message"), ConversationNewMessageEvent.class,
4951
e -> Mono.fromRunnable(() -> log.info("Message received: {}", e.getConversationMessage().getFallbackText())),
50-
canIgnoreOrder());
52+
canIgnoreOrder(),
53+
ContextSpec.of(
54+
"conversationId", it -> it.getConversationMessage().getConversationId()
55+
));
5156
}
5257

5358
private void echoIfSentByVisitor(BotDialogMessageRequest r) {
@@ -58,6 +63,7 @@ private void echoIfSentByVisitor(BotDialogMessageRequest r) {
5863

5964
private void sendMessage(String dialogToken, String text) {
6065
try {
66+
log.info("Sending message: {}", text);
6167
botsApi.botsSendDialogMessage(new BotDialogPostMessage()
6268
.dialogToken(dialogToken)
6369
.messageData(new TextPostMessageData().text(text)));

src/main/resources/application.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ unblu:
55
middleware:
66
url: ${MIDDLEWARE_URL}
77
name: Test middleware
8-
bot:
8+
outbound-requests:
99
secret: ${BOT_SECRET}
10+
bot:
1011
onboardingFilter: VISITORS
1112
person:
1213
firstName: Test
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
4+
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
5+
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
6+
<providers>
7+
<pattern>
8+
<pattern>{"message": "%message %ex","logger": "%logger","severity": "%level","level": "%level","deliveryId": "%X{deliveryId}","eventId": "%X{eventId}","conversationId": "%X{conversationId}","dialogToken": "%X{dialogToken}","thread": "%thread","@timestamp": "%date{\"yyyy-MM-dd'T'HH:mm:ss.SSS\", UTC}Z"}</pattern>
9+
</pattern>
10+
</providers>
11+
</encoder>
12+
</appender>
13+
14+
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
15+
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
16+
17+
<root level="info">
18+
<springProfile name="production">
19+
<appender-ref ref="STDOUT"/>
20+
</springProfile>
21+
<springProfile name="!production">
22+
<appender-ref ref="CONSOLE"/>
23+
</springProfile>
24+
</root>
25+
</configuration>

0 commit comments

Comments
 (0)