From 8f17b13a83addc0c8da9142664c0eb968dea334b Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Tue, 1 Jul 2025 08:20:43 +0200 Subject: [PATCH 1/6] feat (SMS/Batches): Batches snippets --- snippets/sms/batches/Send.java | 48 ---------------- snippets/src/main/java/sms/README.md | 14 +++++ .../src/main/java/sms/batches/Cancel.java | 46 ++++++++++++++++ .../src/main/java/sms/batches/DryRun.java | 55 +++++++++++++++++++ snippets/src/main/java/sms/batches/Get.java | 46 ++++++++++++++++ snippets/src/main/java/sms/batches/List.java | 42 ++++++++++++++ .../src/main/java/sms/batches/Replace.java | 53 ++++++++++++++++++ snippets/src/main/java/sms/batches/Send.java | 55 +++++++++++++++++++ .../sms/batches/SendDeliveryFeedback.java | 52 ++++++++++++++++++ .../src/main/java/sms/batches/Update.java | 54 ++++++++++++++++++ 10 files changed, 417 insertions(+), 48 deletions(-) delete mode 100644 snippets/sms/batches/Send.java create mode 100644 snippets/src/main/java/sms/README.md create mode 100644 snippets/src/main/java/sms/batches/Cancel.java create mode 100644 snippets/src/main/java/sms/batches/DryRun.java create mode 100644 snippets/src/main/java/sms/batches/Get.java create mode 100644 snippets/src/main/java/sms/batches/List.java create mode 100644 snippets/src/main/java/sms/batches/Replace.java create mode 100644 snippets/src/main/java/sms/batches/Send.java create mode 100644 snippets/src/main/java/sms/batches/SendDeliveryFeedback.java create mode 100644 snippets/src/main/java/sms/batches/Update.java diff --git a/snippets/sms/batches/Send.java b/snippets/sms/batches/Send.java deleted file mode 100644 index 94c08aa..0000000 --- a/snippets/sms/batches/Send.java +++ /dev/null @@ -1,48 +0,0 @@ -package sms.batches; - -import com.sinch.sdk.SinchClient; -import com.sinch.sdk.domains.sms.api.v1.BatchesService; -import com.sinch.sdk.domains.sms.models.v1.batches.request.TextRequest; -import com.sinch.sdk.domains.sms.models.v1.batches.response.BatchResponse; -import com.sinch.sdk.models.Configuration; -import java.util.Collections; -import java.util.logging.*; -import java.util.logging.Logger; - -public class Send { - - private static final Logger LOGGER = Logger.getLogger(Send.class.getName()); - - public static void main(String[] args) { - - String projectId = "SINCH_PROJECT_ID"; - String keyId = "SINCH_KEY_ID"; - String keySecret = "SINCH_KEY_SECRET"; - - Configuration configuration = - Configuration.builder() - .setProjectId(projectId) - .setKeyId(keyId) - .setKeySecret(keySecret) - .build(); - - SinchClient client = new SinchClient(configuration); - - BatchesService service = client.sms().v1().batches(); - - String from = "YOUR_sinch_phone_number"; - String recipient = "YOUR_recipient_phone_number"; - String body = "This is a test SMS message using the Sinch Java SDK."; - - LOGGER.info("Sending SMS Text"); - BatchResponse value = - service.send( - TextRequest.builder() - .setTo(Collections.singletonList(recipient)) - .setBody(body) - .setFrom(from) - .build()); - - LOGGER.info("Response: " + value); - } -} diff --git a/snippets/src/main/java/sms/README.md b/snippets/src/main/java/sms/README.md new file mode 100644 index 0000000..d99e42c --- /dev/null +++ b/snippets/src/main/java/sms/README.md @@ -0,0 +1,14 @@ +# SMS snippets +Sinch Java SDK Code Snippets Repository +See main [README.md](../../../../../README.md) for how to execute snippets + +- SMS + - Batches + - [sms/batches/Send](./batches/Send.java) + - [sms/batches/List](./batches/List.java) + - [sms/batches/DryRun](./batches/DryRun.java) + - [sms/batches/Get](./batches/Get.java) + - [sms/batches/Update](./batches/Update.java) + - [sms/batches/Replace](./batches/Replace.java) + - [sms/batches/Cancel](./batches/Cancel.java) + - [sms/batches/SendDeliveryFeedback](./batches/SendDeliveryFeedback.java) diff --git a/snippets/src/main/java/sms/batches/Cancel.java b/snippets/src/main/java/sms/batches/Cancel.java new file mode 100644 index 0000000..3cf1caf --- /dev/null +++ b/snippets/src/main/java/sms/batches/Cancel.java @@ -0,0 +1,46 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.domains.sms.models.v1.batches.response.BatchResponse; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class Cancel { + + private static final Logger LOGGER = Logger.getLogger(Cancel.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String batchId = "A_BATCH_ID"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info(String.format("Cancelling batch ID '%s'", batchId)); + + BatchResponse response = service.cancel(batchId); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/batches/DryRun.java b/snippets/src/main/java/sms/batches/DryRun.java new file mode 100644 index 0000000..eb92b9b --- /dev/null +++ b/snippets/src/main/java/sms/batches/DryRun.java @@ -0,0 +1,55 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.domains.sms.models.v1.batches.request.TextRequest; +import com.sinch.sdk.domains.sms.models.v1.batches.response.DryRunResponse; +import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Logger; +import utils.Settings; + +public class DryRun { + + private static final Logger LOGGER = Logger.getLogger(DryRun.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String phoneNumber = Settings.getPhoneNumber().orElse("MY_SINCH_PHONE_NUMBER"); + + List recipients = Arrays.asList("A_RECIPIENT_PHONE_NUMBER"); + String body = "A body text here"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info("DryRun Request"); + + TextRequest request = + TextRequest.builder().setFrom(phoneNumber).setTo(recipients).setBody(body).build(); + + DryRunResponse response = service.dryRun(request); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/batches/Get.java b/snippets/src/main/java/sms/batches/Get.java new file mode 100644 index 0000000..697a0d2 --- /dev/null +++ b/snippets/src/main/java/sms/batches/Get.java @@ -0,0 +1,46 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.domains.sms.models.v1.batches.response.BatchResponse; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class Get { + + private static final Logger LOGGER = Logger.getLogger(Get.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String batchId = "A_BATCH_ID"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info(String.format("Get information for batch ID '%s'", batchId)); + + BatchResponse response = service.get(batchId); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/batches/List.java b/snippets/src/main/java/sms/batches/List.java new file mode 100644 index 0000000..9cea0b6 --- /dev/null +++ b/snippets/src/main/java/sms/batches/List.java @@ -0,0 +1,42 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class List { + private static final Logger LOGGER = Logger.getLogger(List.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info("List batches"); + + LOGGER.info("Response:"); + + service.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + } +} diff --git a/snippets/src/main/java/sms/batches/Replace.java b/snippets/src/main/java/sms/batches/Replace.java new file mode 100644 index 0000000..ee06288 --- /dev/null +++ b/snippets/src/main/java/sms/batches/Replace.java @@ -0,0 +1,53 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.domains.sms.models.v1.batches.request.TextRequest; +import com.sinch.sdk.domains.sms.models.v1.batches.response.BatchResponse; +import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Logger; +import utils.Settings; + +public class Replace { + + private static final Logger LOGGER = Logger.getLogger(Replace.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String batchId = "A_BATCH_ID"; + List recipients = Arrays.asList("A_NEW_RECIPIENT_PHONE_NUMBER"); + String body = "A message body updated"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info(String.format("Replacing batch ID '%s'", batchId)); + + TextRequest request = TextRequest.builder().setTo(recipients).setBody(body).build(); + + BatchResponse response = service.replace(batchId, request); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/batches/Send.java b/snippets/src/main/java/sms/batches/Send.java new file mode 100644 index 0000000..af64a7b --- /dev/null +++ b/snippets/src/main/java/sms/batches/Send.java @@ -0,0 +1,55 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.domains.sms.models.v1.batches.request.TextRequest; +import com.sinch.sdk.domains.sms.models.v1.batches.response.BatchResponse; +import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Logger; +import utils.Settings; + +public class Send { + + private static final Logger LOGGER = Logger.getLogger(Send.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String phoneNumber = Settings.getPhoneNumber().orElse("MY_SINCH_PHONE_NUMBER"); + + List recipients = Arrays.asList("A_RECIPIENT_PHONE_NUMBER"); + String body = "This is a test SMS message using the Sinch Java SDK."; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info(String.format("Sending SMS Text to '%s'", phoneNumber)); + + TextRequest request = + TextRequest.builder().setTo(recipients).setBody(body).setFrom(phoneNumber).build(); + + BatchResponse response = service.send(request); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/batches/SendDeliveryFeedback.java b/snippets/src/main/java/sms/batches/SendDeliveryFeedback.java new file mode 100644 index 0000000..b467471 --- /dev/null +++ b/snippets/src/main/java/sms/batches/SendDeliveryFeedback.java @@ -0,0 +1,52 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.domains.sms.models.v1.batches.request.SendDeliveryFeedbackRequest; +import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Logger; +import utils.Settings; + +public class SendDeliveryFeedback { + + private static final Logger LOGGER = Logger.getLogger(SendDeliveryFeedback.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String batchId = "A_BATCH_ID"; + List recipients = Arrays.asList("A_RECIPIENT_PHONE_NUMBER"); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info(String.format("Sending delivery feedback for batch ID '%s'", batchId)); + + SendDeliveryFeedbackRequest request = + SendDeliveryFeedbackRequest.builder().setRecipients(recipients).build(); + + service.sendDeliveryFeedback(batchId, request); + + LOGGER.info("Done"); + } +} diff --git a/snippets/src/main/java/sms/batches/Update.java b/snippets/src/main/java/sms/batches/Update.java new file mode 100644 index 0000000..f1dd389 --- /dev/null +++ b/snippets/src/main/java/sms/batches/Update.java @@ -0,0 +1,54 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.batches; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.BatchesService; +import com.sinch.sdk.domains.sms.models.v1.batches.request.UpdateTextRequest; +import com.sinch.sdk.domains.sms.models.v1.batches.response.BatchResponse; +import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.List; +import java.util.logging.Logger; +import utils.Settings; + +public class Update { + + private static final Logger LOGGER = Logger.getLogger(Update.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String batchId = "A_BATCH_ID"; + List toRemove = Arrays.asList("11111111111", "29999999999"); + List toAdd = Arrays.asList("123456789", "987654321"); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + BatchesService service = client.sms().v1().batches(); + + LOGGER.info(String.format("Updating batch ID '%s'", batchId)); + + UpdateTextRequest request = + UpdateTextRequest.builder().setToRemove(toRemove).setToAdd(toAdd).build(); + + BatchResponse response = service.update(batchId, request); + + LOGGER.info("Response: " + response); + } +} From 31540f42672ec3fd6e2c70054dd8b6e31921641a Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Tue, 1 Jul 2025 09:44:37 +0200 Subject: [PATCH 2/6] feat (SMS/DeliveryReports): Delivery report snippets --- snippets/src/main/java/sms/README.md | 4 ++ .../main/java/sms/deliveryReports/Get.java | 46 ++++++++++++++++++ .../sms/deliveryReports/GetForNumber.java | 47 +++++++++++++++++++ .../main/java/sms/deliveryReports/List.java | 42 +++++++++++++++++ 4 files changed, 139 insertions(+) create mode 100644 snippets/src/main/java/sms/deliveryReports/Get.java create mode 100644 snippets/src/main/java/sms/deliveryReports/GetForNumber.java create mode 100644 snippets/src/main/java/sms/deliveryReports/List.java diff --git a/snippets/src/main/java/sms/README.md b/snippets/src/main/java/sms/README.md index d99e42c..223d844 100644 --- a/snippets/src/main/java/sms/README.md +++ b/snippets/src/main/java/sms/README.md @@ -12,3 +12,7 @@ See main [README.md](../../../../../README.md) for how to execute snippets - [sms/batches/Replace](./batches/Replace.java) - [sms/batches/Cancel](./batches/Cancel.java) - [sms/batches/SendDeliveryFeedback](./batches/SendDeliveryFeedback.java) + - Delivery reports + - [sms/deliveryReports/Get](./deliveryReports/Get.java) + - [sms/deliveryReports/GetForNumber](./deliveryReports/GetForNumber.java) + - [sms/deliveryReports/List](./deliveryReports/List.java) diff --git a/snippets/src/main/java/sms/deliveryReports/Get.java b/snippets/src/main/java/sms/deliveryReports/Get.java new file mode 100644 index 0000000..c0aeaa4 --- /dev/null +++ b/snippets/src/main/java/sms/deliveryReports/Get.java @@ -0,0 +1,46 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.deliveryReports; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.DeliveryReportsService; +import com.sinch.sdk.domains.sms.models.v1.deliveryreports.BatchDeliveryReport; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class Get { + + private static final Logger LOGGER = Logger.getLogger(Get.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String batchId = "A_BATCH_ID"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + DeliveryReportsService service = client.sms().v1().deliveryReports(); + + LOGGER.info(String.format("Get delivery report for batch ID '%s'", batchId)); + + BatchDeliveryReport response = service.get(batchId); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/deliveryReports/GetForNumber.java b/snippets/src/main/java/sms/deliveryReports/GetForNumber.java new file mode 100644 index 0000000..33472bd --- /dev/null +++ b/snippets/src/main/java/sms/deliveryReports/GetForNumber.java @@ -0,0 +1,47 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.deliveryReports; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.DeliveryReportsService; +import com.sinch.sdk.domains.sms.models.v1.deliveryreports.RecipientDeliveryReport; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class GetForNumber { + + private static final Logger LOGGER = Logger.getLogger(Get.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String batchId = "A_BATCH_ID"; + String phoneNumber = "A_RECIPIENT_PHONE_NUMBER"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + DeliveryReportsService service = client.sms().v1().deliveryReports(); + + LOGGER.info(String.format("Get delivery report for number '%s'", phoneNumber)); + + RecipientDeliveryReport response = service.getForNumber(batchId, phoneNumber); + + LOGGER.info("Response :" + response); + } +} diff --git a/snippets/src/main/java/sms/deliveryReports/List.java b/snippets/src/main/java/sms/deliveryReports/List.java new file mode 100644 index 0000000..42f2548 --- /dev/null +++ b/snippets/src/main/java/sms/deliveryReports/List.java @@ -0,0 +1,42 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.deliveryReports; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.DeliveryReportsService; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class List { + + private static final Logger LOGGER = Logger.getLogger(List.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + DeliveryReportsService service = client.sms().v1().deliveryReports(); + + LOGGER.info("List Delivery Reports"); + + LOGGER.info("Response:"); + service.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + } +} From ae00e088579aba45be95b19f28a1c61f0a50c7f5 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Tue, 1 Jul 2025 15:23:45 +0200 Subject: [PATCH 3/6] feat (SMS/Inbounds): Inbounds snippets --- snippets/src/main/java/sms/README.md | 6 ++- snippets/src/main/java/sms/inbounds/Get.java | 46 +++++++++++++++++++ snippets/src/main/java/sms/inbounds/List.java | 41 +++++++++++++++++ 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 snippets/src/main/java/sms/inbounds/Get.java create mode 100644 snippets/src/main/java/sms/inbounds/List.java diff --git a/snippets/src/main/java/sms/README.md b/snippets/src/main/java/sms/README.md index 223d844..9db5af4 100644 --- a/snippets/src/main/java/sms/README.md +++ b/snippets/src/main/java/sms/README.md @@ -15,4 +15,8 @@ See main [README.md](../../../../../README.md) for how to execute snippets - Delivery reports - [sms/deliveryReports/Get](./deliveryReports/Get.java) - [sms/deliveryReports/GetForNumber](./deliveryReports/GetForNumber.java) - - [sms/deliveryReports/List](./deliveryReports/List.java) + - [sms/deliveryReports/List](./deliveryReports/List.java) + - Inbounds + - [sms/inbounds/List](./inbounds/List.java) + - [sms/inbounds/Get](./inbounds/Get.java) + diff --git a/snippets/src/main/java/sms/inbounds/Get.java b/snippets/src/main/java/sms/inbounds/Get.java new file mode 100644 index 0000000..ec109ae --- /dev/null +++ b/snippets/src/main/java/sms/inbounds/Get.java @@ -0,0 +1,46 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.inbounds; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.InboundsService; +import com.sinch.sdk.domains.sms.models.v1.inbounds.InboundMessage; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class Get { + + private static final Logger LOGGER = Logger.getLogger(Get.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String inboundId = "AN_INBOUND_ID"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + InboundsService service = client.sms().v1().inbounds(); + + LOGGER.info(String.format("Get inbound with ID '%s'", inboundId)); + + InboundMessage response = service.get(inboundId); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/inbounds/List.java b/snippets/src/main/java/sms/inbounds/List.java new file mode 100644 index 0000000..34f97cb --- /dev/null +++ b/snippets/src/main/java/sms/inbounds/List.java @@ -0,0 +1,41 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.inbounds; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.InboundsService; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class List { + + private static final Logger LOGGER = Logger.getLogger(List.class.getName()); + + public static void main(String[] args) { + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + InboundsService service = client.sms().v1().inbounds(); + + LOGGER.info("List inbounds"); + + LOGGER.info("Response:"); + service.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + } +} From fc9df78556caeb45a8e02f038d44653c669e5b62 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Tue, 1 Jul 2025 16:31:44 +0200 Subject: [PATCH 4/6] feat (SMS/Groups): Groups snippets --- snippets/src/main/java/sms/README.md | 12 ++++- snippets/src/main/java/sms/groups/Create.java | 53 +++++++++++++++++++ snippets/src/main/java/sms/groups/Delete.java | 45 ++++++++++++++++ snippets/src/main/java/sms/groups/Get.java | 46 ++++++++++++++++ snippets/src/main/java/sms/groups/List.java | 45 ++++++++++++++++ .../src/main/java/sms/groups/ListMembers.java | 47 ++++++++++++++++ .../src/main/java/sms/groups/Replace.java | 53 +++++++++++++++++++ snippets/src/main/java/sms/groups/Update.java | 50 +++++++++++++++++ 8 files changed, 349 insertions(+), 2 deletions(-) create mode 100644 snippets/src/main/java/sms/groups/Create.java create mode 100644 snippets/src/main/java/sms/groups/Delete.java create mode 100644 snippets/src/main/java/sms/groups/Get.java create mode 100644 snippets/src/main/java/sms/groups/List.java create mode 100644 snippets/src/main/java/sms/groups/ListMembers.java create mode 100644 snippets/src/main/java/sms/groups/Replace.java create mode 100644 snippets/src/main/java/sms/groups/Update.java diff --git a/snippets/src/main/java/sms/README.md b/snippets/src/main/java/sms/README.md index 9db5af4..8d0f815 100644 --- a/snippets/src/main/java/sms/README.md +++ b/snippets/src/main/java/sms/README.md @@ -18,5 +18,13 @@ See main [README.md](../../../../../README.md) for how to execute snippets - [sms/deliveryReports/List](./deliveryReports/List.java) - Inbounds - [sms/inbounds/List](./inbounds/List.java) - - [sms/inbounds/Get](./inbounds/Get.java) - + - [sms/inbounds/Get](./inbounds/Get.java) + - Groups + - [sms/groups/List](./groups/List.java) + - [sms/groups/Create](./groups/Create.java) + - [sms/groups/Get](./groups/Get.java) + - [sms/groups/Update](./groups/Update.java) + - [sms/groups/Replace](./groups/Replace.java) + - [sms/groups/Delete](./groups/Delete.java) + - [sms/groups/ListMembers](./groups/ListMembers.java) + \ No newline at end of file diff --git a/snippets/src/main/java/sms/groups/Create.java b/snippets/src/main/java/sms/groups/Create.java new file mode 100644 index 0000000..91dba43 --- /dev/null +++ b/snippets/src/main/java/sms/groups/Create.java @@ -0,0 +1,53 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.groups; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.GroupsService; +import com.sinch.sdk.domains.sms.models.v1.groups.Group; +import com.sinch.sdk.domains.sms.models.v1.groups.request.GroupRequest; +import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Logger; +import utils.Settings; + +public class Create { + + private static final Logger LOGGER = Logger.getLogger(Create.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String groupName = "Sinch Java SDK group"; + Set members = new HashSet<>(Arrays.asList("A_RECIPIENT_PHONE_NUMBER")); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + GroupsService service = client.sms().v1().groups(); + + LOGGER.info("Creating group"); + + GroupRequest request = GroupRequest.builder().setName(groupName).setMembers(members).build(); + + Group response = service.create(request); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/groups/Delete.java b/snippets/src/main/java/sms/groups/Delete.java new file mode 100644 index 0000000..8d03705 --- /dev/null +++ b/snippets/src/main/java/sms/groups/Delete.java @@ -0,0 +1,45 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.groups; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.GroupsService; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class Delete { + + private static final Logger LOGGER = Logger.getLogger(Delete.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String groupId = "A_GROUP_ID"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + GroupsService service = client.sms().v1().groups(); + + LOGGER.info(String.format("Deleting group with ID '%s'", groupId)); + + service.delete(groupId); + + LOGGER.info("Done"); + } +} diff --git a/snippets/src/main/java/sms/groups/Get.java b/snippets/src/main/java/sms/groups/Get.java new file mode 100644 index 0000000..01b87d3 --- /dev/null +++ b/snippets/src/main/java/sms/groups/Get.java @@ -0,0 +1,46 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.groups; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.GroupsService; +import com.sinch.sdk.domains.sms.models.v1.groups.Group; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class Get { + + private static final Logger LOGGER = Logger.getLogger(Get.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String groupId = "A_GROUP_ID"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + GroupsService service = client.sms().v1().groups(); + + LOGGER.info(String.format("Get information for group with ID '%s'", groupId)); + + Group response = service.get(groupId); + + LOGGER.info("Response: " + response); + } +} diff --git a/snippets/src/main/java/sms/groups/List.java b/snippets/src/main/java/sms/groups/List.java new file mode 100644 index 0000000..4e419a1 --- /dev/null +++ b/snippets/src/main/java/sms/groups/List.java @@ -0,0 +1,45 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.groups; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.GroupsService; +import com.sinch.sdk.domains.sms.models.v1.groups.response.ListGroupsResponse; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class List { + + private static final Logger LOGGER = Logger.getLogger(List.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + GroupsService service = client.sms().v1().groups(); + + LOGGER.info("List groups"); + + ListGroupsResponse response = service.list(); + + LOGGER.info("Response:"); + response.iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + } +} diff --git a/snippets/src/main/java/sms/groups/ListMembers.java b/snippets/src/main/java/sms/groups/ListMembers.java new file mode 100644 index 0000000..fc4a94f --- /dev/null +++ b/snippets/src/main/java/sms/groups/ListMembers.java @@ -0,0 +1,47 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.groups; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.GroupsService; +import com.sinch.sdk.models.Configuration; +import java.util.Collection; +import java.util.logging.Logger; +import utils.Settings; + +public class ListMembers { + + private static final Logger LOGGER = Logger.getLogger(ListMembers.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String groupId = "A_GROUP_ID"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + GroupsService service = client.sms().v1().groups(); + + LOGGER.info("List members for groupId: " + groupId); + + Collection response = service.listMembers(groupId); + + LOGGER.info("Response:"); + response.iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + } +} diff --git a/snippets/src/main/java/sms/groups/Replace.java b/snippets/src/main/java/sms/groups/Replace.java new file mode 100644 index 0000000..12f3ed9 --- /dev/null +++ b/snippets/src/main/java/sms/groups/Replace.java @@ -0,0 +1,53 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.groups; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.GroupsService; +import com.sinch.sdk.domains.sms.models.v1.groups.Group; +import com.sinch.sdk.domains.sms.models.v1.groups.request.GroupRequest; +import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; +import java.util.logging.Logger; +import utils.Settings; + +public class Replace { + + private static final Logger LOGGER = Logger.getLogger(Replace.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String groupId = "A_GROUP_ID"; + Set members = new HashSet<>(Arrays.asList("A_RECIPIENT_PHONE_NUMBER")); + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + GroupsService service = client.sms().v1().groups(); + + GroupRequest request = GroupRequest.builder().setMembers(members).build(); + + LOGGER.info(String.format("Replace group with ID '%s'", groupId)); + + Group response = service.replace(groupId, request); + + LOGGER.info("Response :" + response); + } +} diff --git a/snippets/src/main/java/sms/groups/Update.java b/snippets/src/main/java/sms/groups/Update.java new file mode 100644 index 0000000..f713990 --- /dev/null +++ b/snippets/src/main/java/sms/groups/Update.java @@ -0,0 +1,50 @@ +/** + * Sinch Java Snippet + * + *

This snippet is available at https://github.com/sinch/sinch-sdk-java-snippets + * + *

See https://github.com/sinch/sinch-sdk-java-snippets/blob/main/README.md for details + */ +package sms.groups; + +import com.sinch.sdk.SinchClient; +import com.sinch.sdk.domains.sms.api.v1.GroupsService; +import com.sinch.sdk.domains.sms.models.v1.groups.Group; +import com.sinch.sdk.domains.sms.models.v1.groups.request.GroupUpdateRequest; +import com.sinch.sdk.models.Configuration; +import java.util.logging.Logger; +import utils.Settings; + +public class Update { + + private static final Logger LOGGER = Logger.getLogger(Update.class.getName()); + + public static void main(String[] args) { + + String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID"); + String keyId = Settings.getKeyId().orElse("MY_KEY_ID"); + String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); + + String groupId = "A_GROUP_ID"; + String groupName = "New name updated"; + + Configuration configuration = + Configuration.builder() + .setProjectId(projectId) + .setKeyId(keyId) + .setKeySecret(keySecret) + .build(); + + SinchClient client = new SinchClient(configuration); + + GroupsService service = client.sms().v1().groups(); + + GroupUpdateRequest request = GroupUpdateRequest.builder().setName(groupName).build(); + + LOGGER.info(String.format("Update group with ID '%s'", groupId)); + + Group response = service.update(groupId, request); + + LOGGER.info("Response: " + response); + } +} From c893daa0d9f9d204e56e210ec60699f8c928ef22 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Wed, 2 Jul 2025 18:13:24 +0200 Subject: [PATCH 5/6] refactor (SMS): Naming enhancements --- snippets/src/main/java/sms/README.md | 52 +++++++++---------- .../src/main/java/sms/batches/Cancel.java | 6 +-- .../src/main/java/sms/batches/DryRun.java | 4 +- snippets/src/main/java/sms/batches/Get.java | 6 +-- snippets/src/main/java/sms/batches/List.java | 4 +- .../src/main/java/sms/batches/Replace.java | 6 +-- snippets/src/main/java/sms/batches/Send.java | 8 +-- .../sms/batches/SendDeliveryFeedback.java | 6 +-- .../src/main/java/sms/batches/Update.java | 6 +-- .../main/java/sms/deliveryReports/Get.java | 6 +-- .../sms/deliveryReports/GetForNumber.java | 4 +- .../main/java/sms/deliveryReports/List.java | 4 +- snippets/src/main/java/sms/groups/Create.java | 4 +- snippets/src/main/java/sms/groups/Delete.java | 4 +- snippets/src/main/java/sms/groups/Get.java | 4 +- snippets/src/main/java/sms/groups/List.java | 4 +- .../src/main/java/sms/groups/ListMembers.java | 6 +-- .../src/main/java/sms/groups/Replace.java | 4 +- snippets/src/main/java/sms/groups/Update.java | 4 +- snippets/src/main/java/sms/inbounds/Get.java | 6 +-- snippets/src/main/java/sms/inbounds/List.java | 6 +-- 21 files changed, 77 insertions(+), 77 deletions(-) diff --git a/snippets/src/main/java/sms/README.md b/snippets/src/main/java/sms/README.md index 8d0f815..bd26405 100644 --- a/snippets/src/main/java/sms/README.md +++ b/snippets/src/main/java/sms/README.md @@ -1,30 +1,30 @@ # SMS snippets -Sinch Java SDK Code Snippets Repository +Sinch Java SDK Code Snippets Repository for SMS APIs + See main [README.md](../../../../../README.md) for how to execute snippets -- SMS - - Batches - - [sms/batches/Send](./batches/Send.java) - - [sms/batches/List](./batches/List.java) - - [sms/batches/DryRun](./batches/DryRun.java) - - [sms/batches/Get](./batches/Get.java) - - [sms/batches/Update](./batches/Update.java) - - [sms/batches/Replace](./batches/Replace.java) - - [sms/batches/Cancel](./batches/Cancel.java) - - [sms/batches/SendDeliveryFeedback](./batches/SendDeliveryFeedback.java) - - Delivery reports - - [sms/deliveryReports/Get](./deliveryReports/Get.java) - - [sms/deliveryReports/GetForNumber](./deliveryReports/GetForNumber.java) - - [sms/deliveryReports/List](./deliveryReports/List.java) - - Inbounds - - [sms/inbounds/List](./inbounds/List.java) - - [sms/inbounds/Get](./inbounds/Get.java) - - Groups - - [sms/groups/List](./groups/List.java) - - [sms/groups/Create](./groups/Create.java) - - [sms/groups/Get](./groups/Get.java) - - [sms/groups/Update](./groups/Update.java) - - [sms/groups/Replace](./groups/Replace.java) - - [sms/groups/Delete](./groups/Delete.java) - - [sms/groups/ListMembers](./groups/ListMembers.java) +- Batches + - [sms/batches/Send](./batches/Send.java) + - [sms/batches/List](./batches/List.java) + - [sms/batches/DryRun](./batches/DryRun.java) + - [sms/batches/Get](./batches/Get.java) + - [sms/batches/Update](./batches/Update.java) + - [sms/batches/Replace](./batches/Replace.java) + - [sms/batches/Cancel](./batches/Cancel.java) + - [sms/batches/SendDeliveryFeedback](./batches/SendDeliveryFeedback.java) +- Delivery reports + - [sms/deliveryReports/Get](./deliveryReports/Get.java) + - [sms/deliveryReports/GetForNumber](./deliveryReports/GetForNumber.java) + - [sms/deliveryReports/List](./deliveryReports/List.java) +- Inbounds + - [sms/inbounds/List](./inbounds/List.java) + - [sms/inbounds/Get](./inbounds/Get.java) +- Groups + - [sms/groups/List](./groups/List.java) + - [sms/groups/Create](./groups/Create.java) + - [sms/groups/Get](./groups/Get.java) + - [sms/groups/Update](./groups/Update.java) + - [sms/groups/Replace](./groups/Replace.java) + - [sms/groups/Delete](./groups/Delete.java) + - [sms/groups/ListMembers](./groups/ListMembers.java) \ No newline at end of file diff --git a/snippets/src/main/java/sms/batches/Cancel.java b/snippets/src/main/java/sms/batches/Cancel.java index 3cf1caf..81645a9 100644 --- a/snippets/src/main/java/sms/batches/Cancel.java +++ b/snippets/src/main/java/sms/batches/Cancel.java @@ -35,11 +35,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); - LOGGER.info(String.format("Cancelling batch ID '%s'", batchId)); + LOGGER.info(String.format("Cancelling batch with ID '%s'", batchId)); - BatchResponse response = service.cancel(batchId); + BatchResponse response = batchesService.cancel(batchId); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/batches/DryRun.java b/snippets/src/main/java/sms/batches/DryRun.java index eb92b9b..f14bbfc 100644 --- a/snippets/src/main/java/sms/batches/DryRun.java +++ b/snippets/src/main/java/sms/batches/DryRun.java @@ -41,14 +41,14 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); LOGGER.info("DryRun Request"); TextRequest request = TextRequest.builder().setFrom(phoneNumber).setTo(recipients).setBody(body).build(); - DryRunResponse response = service.dryRun(request); + DryRunResponse response = batchesService.dryRun(request); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/batches/Get.java b/snippets/src/main/java/sms/batches/Get.java index 697a0d2..858a924 100644 --- a/snippets/src/main/java/sms/batches/Get.java +++ b/snippets/src/main/java/sms/batches/Get.java @@ -35,11 +35,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); - LOGGER.info(String.format("Get information for batch ID '%s'", batchId)); + LOGGER.info(String.format("Get information for batch with ID '%s'", batchId)); - BatchResponse response = service.get(batchId); + BatchResponse response = batchesService.get(batchId); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/batches/List.java b/snippets/src/main/java/sms/batches/List.java index 9cea0b6..233ac14 100644 --- a/snippets/src/main/java/sms/batches/List.java +++ b/snippets/src/main/java/sms/batches/List.java @@ -31,12 +31,12 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); LOGGER.info("List batches"); LOGGER.info("Response:"); - service.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + batchesService.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); } } diff --git a/snippets/src/main/java/sms/batches/Replace.java b/snippets/src/main/java/sms/batches/Replace.java index ee06288..8a4b580 100644 --- a/snippets/src/main/java/sms/batches/Replace.java +++ b/snippets/src/main/java/sms/batches/Replace.java @@ -40,13 +40,13 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); - LOGGER.info(String.format("Replacing batch ID '%s'", batchId)); + LOGGER.info(String.format("Replacing batch with ID '%s'", batchId)); TextRequest request = TextRequest.builder().setTo(recipients).setBody(body).build(); - BatchResponse response = service.replace(batchId, request); + BatchResponse response = batchesService.replace(batchId, request); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/batches/Send.java b/snippets/src/main/java/sms/batches/Send.java index af64a7b..c70d934 100644 --- a/snippets/src/main/java/sms/batches/Send.java +++ b/snippets/src/main/java/sms/batches/Send.java @@ -28,7 +28,7 @@ public static void main(String[] args) { String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); String phoneNumber = Settings.getPhoneNumber().orElse("MY_SINCH_PHONE_NUMBER"); - + List recipients = Arrays.asList("A_RECIPIENT_PHONE_NUMBER"); String body = "This is a test SMS message using the Sinch Java SDK."; @@ -41,14 +41,14 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); - LOGGER.info(String.format("Sending SMS Text to '%s'", phoneNumber)); + LOGGER.info(String.format("Sending SMS Text to recipients '%s'", recipients)); TextRequest request = TextRequest.builder().setTo(recipients).setBody(body).setFrom(phoneNumber).build(); - BatchResponse response = service.send(request); + BatchResponse response = batchesService.send(request); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/batches/SendDeliveryFeedback.java b/snippets/src/main/java/sms/batches/SendDeliveryFeedback.java index b467471..2cbf23a 100644 --- a/snippets/src/main/java/sms/batches/SendDeliveryFeedback.java +++ b/snippets/src/main/java/sms/batches/SendDeliveryFeedback.java @@ -38,14 +38,14 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); - LOGGER.info(String.format("Sending delivery feedback for batch ID '%s'", batchId)); + LOGGER.info(String.format("Sending delivery feedback for batch with ID '%s'", batchId)); SendDeliveryFeedbackRequest request = SendDeliveryFeedbackRequest.builder().setRecipients(recipients).build(); - service.sendDeliveryFeedback(batchId, request); + batchesService.sendDeliveryFeedback(batchId, request); LOGGER.info("Done"); } diff --git a/snippets/src/main/java/sms/batches/Update.java b/snippets/src/main/java/sms/batches/Update.java index f1dd389..823b739 100644 --- a/snippets/src/main/java/sms/batches/Update.java +++ b/snippets/src/main/java/sms/batches/Update.java @@ -40,14 +40,14 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - BatchesService service = client.sms().v1().batches(); + BatchesService batchesService = client.sms().v1().batches(); - LOGGER.info(String.format("Updating batch ID '%s'", batchId)); + LOGGER.info(String.format("Updating batch with ID '%s'", batchId)); UpdateTextRequest request = UpdateTextRequest.builder().setToRemove(toRemove).setToAdd(toAdd).build(); - BatchResponse response = service.update(batchId, request); + BatchResponse response = batchesService.update(batchId, request); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/deliveryReports/Get.java b/snippets/src/main/java/sms/deliveryReports/Get.java index c0aeaa4..a66be58 100644 --- a/snippets/src/main/java/sms/deliveryReports/Get.java +++ b/snippets/src/main/java/sms/deliveryReports/Get.java @@ -35,11 +35,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - DeliveryReportsService service = client.sms().v1().deliveryReports(); + DeliveryReportsService deliveryReportsService = client.sms().v1().deliveryReports(); - LOGGER.info(String.format("Get delivery report for batch ID '%s'", batchId)); + LOGGER.info(String.format("Get delivery report for batch with ID '%s'", batchId)); - BatchDeliveryReport response = service.get(batchId); + BatchDeliveryReport response = deliveryReportsService.get(batchId); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/deliveryReports/GetForNumber.java b/snippets/src/main/java/sms/deliveryReports/GetForNumber.java index 33472bd..9ec9f61 100644 --- a/snippets/src/main/java/sms/deliveryReports/GetForNumber.java +++ b/snippets/src/main/java/sms/deliveryReports/GetForNumber.java @@ -36,11 +36,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - DeliveryReportsService service = client.sms().v1().deliveryReports(); + DeliveryReportsService deliveryReportsService = client.sms().v1().deliveryReports(); LOGGER.info(String.format("Get delivery report for number '%s'", phoneNumber)); - RecipientDeliveryReport response = service.getForNumber(batchId, phoneNumber); + RecipientDeliveryReport response = deliveryReportsService.getForNumber(batchId, phoneNumber); LOGGER.info("Response :" + response); } diff --git a/snippets/src/main/java/sms/deliveryReports/List.java b/snippets/src/main/java/sms/deliveryReports/List.java index 42f2548..b7ad3bc 100644 --- a/snippets/src/main/java/sms/deliveryReports/List.java +++ b/snippets/src/main/java/sms/deliveryReports/List.java @@ -32,11 +32,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - DeliveryReportsService service = client.sms().v1().deliveryReports(); + DeliveryReportsService deliveryReportsService = client.sms().v1().deliveryReports(); LOGGER.info("List Delivery Reports"); LOGGER.info("Response:"); - service.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + deliveryReportsService.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); } } diff --git a/snippets/src/main/java/sms/groups/Create.java b/snippets/src/main/java/sms/groups/Create.java index 91dba43..5785992 100644 --- a/snippets/src/main/java/sms/groups/Create.java +++ b/snippets/src/main/java/sms/groups/Create.java @@ -40,13 +40,13 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - GroupsService service = client.sms().v1().groups(); + GroupsService groupsService = client.sms().v1().groups(); LOGGER.info("Creating group"); GroupRequest request = GroupRequest.builder().setName(groupName).setMembers(members).build(); - Group response = service.create(request); + Group response = groupsService.create(request); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/groups/Delete.java b/snippets/src/main/java/sms/groups/Delete.java index 8d03705..0fe38fa 100644 --- a/snippets/src/main/java/sms/groups/Delete.java +++ b/snippets/src/main/java/sms/groups/Delete.java @@ -34,11 +34,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - GroupsService service = client.sms().v1().groups(); + GroupsService groupsService = client.sms().v1().groups(); LOGGER.info(String.format("Deleting group with ID '%s'", groupId)); - service.delete(groupId); + groupsService.delete(groupId); LOGGER.info("Done"); } diff --git a/snippets/src/main/java/sms/groups/Get.java b/snippets/src/main/java/sms/groups/Get.java index 01b87d3..0b7fe2f 100644 --- a/snippets/src/main/java/sms/groups/Get.java +++ b/snippets/src/main/java/sms/groups/Get.java @@ -35,11 +35,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - GroupsService service = client.sms().v1().groups(); + GroupsService groupsService = client.sms().v1().groups(); LOGGER.info(String.format("Get information for group with ID '%s'", groupId)); - Group response = service.get(groupId); + Group response = groupsService.get(groupId); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/groups/List.java b/snippets/src/main/java/sms/groups/List.java index 4e419a1..9c71544 100644 --- a/snippets/src/main/java/sms/groups/List.java +++ b/snippets/src/main/java/sms/groups/List.java @@ -33,11 +33,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - GroupsService service = client.sms().v1().groups(); + GroupsService groupsService = client.sms().v1().groups(); LOGGER.info("List groups"); - ListGroupsResponse response = service.list(); + ListGroupsResponse response = groupsService.list(); LOGGER.info("Response:"); response.iterator().forEachRemaining(f -> LOGGER.info(f.toString())); diff --git a/snippets/src/main/java/sms/groups/ListMembers.java b/snippets/src/main/java/sms/groups/ListMembers.java index fc4a94f..bd32dc7 100644 --- a/snippets/src/main/java/sms/groups/ListMembers.java +++ b/snippets/src/main/java/sms/groups/ListMembers.java @@ -35,11 +35,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - GroupsService service = client.sms().v1().groups(); + GroupsService groupsService = client.sms().v1().groups(); - LOGGER.info("List members for groupId: " + groupId); + LOGGER.info(String.format("List members within group with ID '%s'", groupId)); - Collection response = service.listMembers(groupId); + Collection response = groupsService.listMembers(groupId); LOGGER.info("Response:"); response.iterator().forEachRemaining(f -> LOGGER.info(f.toString())); diff --git a/snippets/src/main/java/sms/groups/Replace.java b/snippets/src/main/java/sms/groups/Replace.java index 12f3ed9..1fad74d 100644 --- a/snippets/src/main/java/sms/groups/Replace.java +++ b/snippets/src/main/java/sms/groups/Replace.java @@ -40,13 +40,13 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - GroupsService service = client.sms().v1().groups(); + GroupsService groupsService = client.sms().v1().groups(); GroupRequest request = GroupRequest.builder().setMembers(members).build(); LOGGER.info(String.format("Replace group with ID '%s'", groupId)); - Group response = service.replace(groupId, request); + Group response = groupsService.replace(groupId, request); LOGGER.info("Response :" + response); } diff --git a/snippets/src/main/java/sms/groups/Update.java b/snippets/src/main/java/sms/groups/Update.java index f713990..6446a7b 100644 --- a/snippets/src/main/java/sms/groups/Update.java +++ b/snippets/src/main/java/sms/groups/Update.java @@ -37,13 +37,13 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - GroupsService service = client.sms().v1().groups(); + GroupsService groupsService = client.sms().v1().groups(); GroupUpdateRequest request = GroupUpdateRequest.builder().setName(groupName).build(); LOGGER.info(String.format("Update group with ID '%s'", groupId)); - Group response = service.update(groupId, request); + Group response = groupsService.update(groupId, request); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/inbounds/Get.java b/snippets/src/main/java/sms/inbounds/Get.java index ec109ae..b5bc37a 100644 --- a/snippets/src/main/java/sms/inbounds/Get.java +++ b/snippets/src/main/java/sms/inbounds/Get.java @@ -35,11 +35,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - InboundsService service = client.sms().v1().inbounds(); + InboundsService inboundsService = client.sms().v1().inbounds(); - LOGGER.info(String.format("Get inbound with ID '%s'", inboundId)); + LOGGER.info(String.format("Get inbound message with ID '%s'", inboundId)); - InboundMessage response = service.get(inboundId); + InboundMessage response = inboundsService.get(inboundId); LOGGER.info("Response: " + response); } diff --git a/snippets/src/main/java/sms/inbounds/List.java b/snippets/src/main/java/sms/inbounds/List.java index 34f97cb..9ccaa13 100644 --- a/snippets/src/main/java/sms/inbounds/List.java +++ b/snippets/src/main/java/sms/inbounds/List.java @@ -31,11 +31,11 @@ public static void main(String[] args) { SinchClient client = new SinchClient(configuration); - InboundsService service = client.sms().v1().inbounds(); + InboundsService inboundsService = client.sms().v1().inbounds(); - LOGGER.info("List inbounds"); + LOGGER.info("List inbounds messages"); LOGGER.info("Response:"); - service.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); + inboundsService.list().iterator().forEachRemaining(f -> LOGGER.info(f.toString())); } } From a03bb18e5c91c13a14bf6c627771b038855608e4 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Portier Date: Thu, 3 Jul 2025 10:51:54 +0200 Subject: [PATCH 6/6] refactor (SMS): Use same pattern for Update snippets related to groupes/batches --- snippets/src/main/java/sms/batches/Update.java | 4 ++-- snippets/src/main/java/sms/groups/Update.java | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/snippets/src/main/java/sms/batches/Update.java b/snippets/src/main/java/sms/batches/Update.java index 823b739..970a699 100644 --- a/snippets/src/main/java/sms/batches/Update.java +++ b/snippets/src/main/java/sms/batches/Update.java @@ -28,8 +28,8 @@ public static void main(String[] args) { String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET"); String batchId = "A_BATCH_ID"; - List toRemove = Arrays.asList("11111111111", "29999999999"); - List toAdd = Arrays.asList("123456789", "987654321"); + List toRemove = Arrays.asList("+11111111111", "+29999999999"); + List toAdd = Arrays.asList("+123456789", "+987654321"); Configuration configuration = Configuration.builder() diff --git a/snippets/src/main/java/sms/groups/Update.java b/snippets/src/main/java/sms/groups/Update.java index 6446a7b..90a021b 100644 --- a/snippets/src/main/java/sms/groups/Update.java +++ b/snippets/src/main/java/sms/groups/Update.java @@ -12,6 +12,8 @@ import com.sinch.sdk.domains.sms.models.v1.groups.Group; import com.sinch.sdk.domains.sms.models.v1.groups.request.GroupUpdateRequest; import com.sinch.sdk.models.Configuration; +import java.util.Arrays; +import java.util.List; import java.util.logging.Logger; import utils.Settings; @@ -27,6 +29,8 @@ public static void main(String[] args) { String groupId = "A_GROUP_ID"; String groupName = "New name updated"; + List toRemove = Arrays.asList("+11111111111", "+29999999999"); + List toAdd = Arrays.asList("+123456789", "+987654321"); Configuration configuration = Configuration.builder() @@ -39,7 +43,8 @@ public static void main(String[] args) { GroupsService groupsService = client.sms().v1().groups(); - GroupUpdateRequest request = GroupUpdateRequest.builder().setName(groupName).build(); + GroupUpdateRequest request = + GroupUpdateRequest.builder().setName(groupName).setAdd(toAdd).setRemove(toRemove).build(); LOGGER.info(String.format("Update group with ID '%s'", groupId));