Skip to content

Instantly share code, notes, and snippets.

@thinkmicroservices
thinkmicroservices / NotificationService: NotificationServiceImpl.java
Created March 12, 2020 21:12
NotificationService: NotificationServiceImpl.java
package com.thinkmicroservices.ri.spring.notification.service.impl;
import com.thinkmicroservices.ri.spring.notification.i18n.I18NResourceBundle;
import com.thinkmicroservices.ri.spring.notification.messaging.EmailMessageSource;
import com.thinkmicroservices.ri.spring.notification.messaging.SmsMessageSource;
import com.thinkmicroservices.ri.spring.notification.messaging.message.EmailMessage;
import com.thinkmicroservices.ri.spring.notification.messaging.message.MmsMessage;
import com.thinkmicroservices.ri.spring.notification.messaging.message.SmsMessage;
import com.thinkmicroservices.ri.spring.notification.service.EmailQueueException;
@thinkmicroservices
thinkmicroservices / NotificationService: SmsRequest.java
Created March 12, 2020 21:07
NotificationService: SmsRequest.java
package com.thinkmicroservices.ri.spring.notification.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.NoArgsConstructor;
@thinkmicroservices
thinkmicroservices / NotificationService: EmailRequest.java
Created March 12, 2020 21:05
NotificationService: EmailRequest.java
package com.thinkmicroservices.ri.spring.notification.model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import javax.validation.constraints.NotBlank;
import lombok.Data;
/**
*
@thinkmicroservices
thinkmicroservices / NotificationService: application.yml
Created March 12, 2020 20:57
NotificationService: application.yml
server:
port: 8080
info:
app:
name: Notification Service
description: Provides an outbound notification service endpoint for email and sms
version: 1.0.0
@thinkmicroservices
thinkmicroservices / NotificationService: bootstrap.yml
Created March 12, 2020 20:55
NotificationService: bootstrap.yml
spring:
application:
name: NOTIFICATION-SERVICE
cloud:
config:
fail-fast: true
retry:
max-attempts: 10
initial-interval: 1500
multiplier: 1.5
@thinkmicroservices
thinkmicroservices / NotificationService: maven pom.xml
Last active March 12, 2020 20:48
NotificationService: maven pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
@thinkmicroservices
thinkmicroservices / OutboundSmsService: dc-06-outbound-sms.yml
Last active March 11, 2020 23:45
OutboundSmsService: dc-06-outbound-sms.yml
## docker-compose -f ./dc-06-outbound-sms.yml up -d
version: "3.7"
services:
##############################################################
# INFRASTRUCTURE SERVICES
################
@thinkmicroservices
thinkmicroservices / OutboundSmsService: SmsQueueListener.java
Created March 11, 2020 23:23
OutboundSmsService: SmsQueueListener.java
package com.thinkmicroservices.ri.spring.sms.outbound.messaging;
import com.thinkmicroservices.ri.spring.sms.outbound.model.MmsRequest;
import com.thinkmicroservices.ri.spring.sms.outbound.model.SmsRequest;
import com.thinkmicroservices.ri.spring.sms.outbound.service.OutboundSmsException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.cloud.stream.messaging.Sink;
import com.thinkmicroservices.ri.spring.sms.outbound.service.OutboundSmsService;
@thinkmicroservices
thinkmicroservices / OutboundSmsService:OutboundSmsController.java
Created March 11, 2020 23:20
OutboundSmsService:OutboundSmsController.java
package com.thinkmicroservices.ri.spring.sms.outbound.controller;
import com.thinkmicroservices.ri.spring.sms.outbound.model.MmsRequest;
import com.thinkmicroservices.ri.spring.sms.outbound.model.SmsRequest;
import com.thinkmicroservices.ri.spring.sms.outbound.service.OutboundSmsException;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@thinkmicroservices
thinkmicroservices / OutboundSmsServiceLTwilioOutboundSmsServiceImpl.java
Created March 11, 2020 22:51
OutboundSmsServiceLTwilioOutboundSmsServiceImpl.java
package com.thinkmicroservices.ri.spring.sms.outbound.service.twilio;
import com.thinkmicroservices.ri.spring.sms.outbound.i18n.I18NResourceBundle;
import com.thinkmicroservices.ri.spring.sms.outbound.service.OutboundSmsException;
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;
import java.net.URI;
import java.util.List;