From 9ae5d94babc9de76582ab3e8f4a4f0d8b45a995e Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Fri, 11 Oct 2024 14:26:51 +0200 Subject: [PATCH] feat (Voice): Move to Voice 'V1' design --- .../client/src/main/java/Application.java | 2 +- .../client/src/main/java/voice/Snippet.java | 2 +- .../src/main/java/voice/VoiceQuickStart.java | 2 +- .../com/mycompany/app/voice/Controller.java | 24 +++++++++---------- .../app/voice/ServerBusinessLogic.java | 24 +++++++++---------- 5 files changed, 27 insertions(+), 27 deletions(-) diff --git a/templates/client/src/main/java/Application.java b/templates/client/src/main/java/Application.java index c711b24..208eb43 100644 --- a/templates/client/src/main/java/Application.java +++ b/templates/client/src/main/java/Application.java @@ -55,7 +55,7 @@ public static void main(String[] args) { // (see https://developers.sinch.com/docs/voice) // comment if unused if (client.getConfiguration().getApplicationCredentials().isPresent()) { - VoiceQuickStart voice = new VoiceQuickStart(client.voice()); + VoiceQuickStart voice = new VoiceQuickStart(client.voice().v1()); } } catch (Exception e) { diff --git a/templates/client/src/main/java/voice/Snippet.java b/templates/client/src/main/java/voice/Snippet.java index 1d3a57c..231df70 100644 --- a/templates/client/src/main/java/voice/Snippet.java +++ b/templates/client/src/main/java/voice/Snippet.java @@ -1,6 +1,6 @@ package voice; -import com.sinch.sdk.domains.voice.VoiceService; +import com.sinch.sdk.domains.voice.api.v1.VoiceService; import java.util.logging.Logger; public class Snippet { diff --git a/templates/client/src/main/java/voice/VoiceQuickStart.java b/templates/client/src/main/java/voice/VoiceQuickStart.java index 8b92621..a7ecc89 100644 --- a/templates/client/src/main/java/voice/VoiceQuickStart.java +++ b/templates/client/src/main/java/voice/VoiceQuickStart.java @@ -1,6 +1,6 @@ package voice; -import com.sinch.sdk.domains.voice.VoiceService; +import com.sinch.sdk.domains.voice.api.v1.VoiceService; public class VoiceQuickStart { diff --git a/templates/server/src/main/java/com/mycompany/app/voice/Controller.java b/templates/server/src/main/java/com/mycompany/app/voice/Controller.java index 8150f29..d109765 100644 --- a/templates/server/src/main/java/com/mycompany/app/voice/Controller.java +++ b/templates/server/src/main/java/com/mycompany/app/voice/Controller.java @@ -1,12 +1,12 @@ package com.mycompany.app.voice; import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.voice.WebHooksService; -import com.sinch.sdk.domains.voice.models.webhooks.AnsweredCallEvent; -import com.sinch.sdk.domains.voice.models.webhooks.DisconnectCallEvent; -import com.sinch.sdk.domains.voice.models.webhooks.IncomingCallEvent; -import com.sinch.sdk.domains.voice.models.webhooks.NotifyEvent; -import com.sinch.sdk.domains.voice.models.webhooks.PromptInputEvent; +import com.sinch.sdk.domains.voice.api.v1.WebHooksService; +import com.sinch.sdk.domains.voice.models.v1.webhooks.AnsweredCallEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.DisconnectedCallEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.IncomingCallEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.NotificationEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.PromptInputEvent; import java.util.Map; import java.util.logging.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -39,11 +39,11 @@ public Controller(SinchClient sinchClient, ServerBusinessLogic webhooksBusinessL public ResponseEntity VoiceEvent( @RequestHeader Map headers, @RequestBody String body) { - WebHooksService webhooks = sinchClient.voice().webhooks(); + WebHooksService webhooks = sinchClient.voice().v1().webhooks(); // ensure valid authentication to handle request var validAuth = - webhooks.validateAuthenticatedRequest( + webhooks.validateAuthenticationHeader( // The HTTP verb this controller is managing "POST", // The URI this controller is managing @@ -59,14 +59,14 @@ public ResponseEntity VoiceEvent( } // decode the payload request - var event = webhooks.unserializeWebhooksEvent(body); + var event = webhooks.parseEvent(body); // let business layer process the request var response = switch (event) { case IncomingCallEvent e -> webhooksBusinessLogic.incoming(e); case AnsweredCallEvent e -> webhooksBusinessLogic.answered(e); - case DisconnectCallEvent e -> { + case DisconnectedCallEvent e -> { webhooksBusinessLogic.disconnect(e); yield null; } @@ -74,7 +74,7 @@ public ResponseEntity VoiceEvent( webhooksBusinessLogic.prompt(e); yield null; } - case NotifyEvent e -> { + case NotificationEvent e -> { webhooksBusinessLogic.notify(e); yield null; } @@ -83,7 +83,7 @@ public ResponseEntity VoiceEvent( String serializedResponse = ""; if (null != response) { - serializedResponse = webhooks.serializeWebhooksResponse(response); + serializedResponse = webhooks.serializeResponse(response); } LOGGER.finest("JSON response: " + serializedResponse); diff --git a/templates/server/src/main/java/com/mycompany/app/voice/ServerBusinessLogic.java b/templates/server/src/main/java/com/mycompany/app/voice/ServerBusinessLogic.java index 0e34f80..4aedb70 100644 --- a/templates/server/src/main/java/com/mycompany/app/voice/ServerBusinessLogic.java +++ b/templates/server/src/main/java/com/mycompany/app/voice/ServerBusinessLogic.java @@ -1,11 +1,11 @@ package com.mycompany.app.voice; -import com.sinch.sdk.domains.voice.models.svaml.SVAMLControl; -import com.sinch.sdk.domains.voice.models.webhooks.AnsweredCallEvent; -import com.sinch.sdk.domains.voice.models.webhooks.DisconnectCallEvent; -import com.sinch.sdk.domains.voice.models.webhooks.IncomingCallEvent; -import com.sinch.sdk.domains.voice.models.webhooks.NotifyEvent; -import com.sinch.sdk.domains.voice.models.webhooks.PromptInputEvent; +import com.sinch.sdk.domains.voice.models.v1.svaml.SvamlControl; +import com.sinch.sdk.domains.voice.models.v1.webhooks.AnsweredCallEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.DisconnectedCallEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.IncomingCallEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.NotificationEvent; +import com.sinch.sdk.domains.voice.models.v1.webhooks.PromptInputEvent; import java.util.logging.Logger; import org.springframework.stereotype.Component; @@ -14,21 +14,21 @@ public class ServerBusinessLogic { private static final Logger LOGGER = Logger.getLogger(ServerBusinessLogic.class.getName()); - public SVAMLControl incoming(IncomingCallEvent event) { + public SvamlControl incoming(IncomingCallEvent event) { LOGGER.info("Handle event :" + event); - return SVAMLControl.builder().build(); + return SvamlControl.builder().build(); } - public SVAMLControl answered(AnsweredCallEvent event) { + public SvamlControl answered(AnsweredCallEvent event) { LOGGER.info("Handle event: " + event); - return SVAMLControl.builder().build(); + return SvamlControl.builder().build(); } - public void disconnect(DisconnectCallEvent event) { + public void disconnect(DisconnectedCallEvent event) { LOGGER.info("Handle event: " + event); } @@ -38,7 +38,7 @@ public void prompt(PromptInputEvent event) { LOGGER.info("Handle event: " + event); } - public void notify(NotifyEvent event) { + public void notify(NotificationEvent event) { LOGGER.info("Handle event: " + event); }