- Added 400 has a default value for the httpResult value of a NotificationClientException.
- there are some cases when the exception is thrown from the client and not from the API, even though a httpResult. All the exceptions raised can be classified as 400, therefore using 400 as a default.
- Added
NotificationClient.getPdfForLetterfunction- accepts
String notificationId - returns a
byte[]containing the final printable PDF for a precompiled or templated letter
- accepts
- Updated old dependencies
- Updated code to bring in linting standards.
- Updated project properties to use UTF-8
- Updated GET and POST to use UTF-8 readers and writers
- Added
postageargument toNotificationClient.sendPrecompiledLetterandNotificationClient.sendPrecompiledLetterWithInputStream - Added
postagetoLetterResponse - Added
postagetoNotification - Added
htmltoTemplatePreview
- Allow passing of
Lists into the personalisation Map to display as a bulleted list in the message.
- Added
NotificationClient.prepareUploadmethod that can be used if you want to upload a document and send a link to that docuemnt by email.- Takes a byte[] of document contents
- You then add the returned
JSONObjectto the personalisation map. - NOTE: the personalisation map for this call needs to be HashMap<String, Object>
- which is why the
sendEmailno uses a wildcard for the generic definition of thepersonalisationHashMap
- which is why the
- Updated
Templateto havename, the name of the template as set in Notify.
- Updated
Notificationto have an Optional createdByName. If the notification was sent manually, this will be the name of the sender. If the notification was sent through the API, this will beOptional.empty(). - New method,
sendPrecompiledLetterWithInputStream, to send a precompiled letter using an InputStream rather than a file.
- Updated testEmailNotificationWithoutPersonalisationReturnsErrorMessageIT to only look for the BadRequestError rather than the json "error": BadRequestError
- Response to
sendPrecompiledLetterupdated- The response now only includes the notification id and the client reference
sendPrecompiledLetteradded to NotificationClient- The client can now send PDF files which conform to the Notify printing template
- Send a Java File object or a base64 encoded string
- 'reference' must be provided to identify the document
- Added
getTextMessages(String olderThan)method to fetch received text messages.
- Update to
NotificationsAPIClient.sendSms()- added
smsSenderId: an optional smsSenderId specified when adding text message senders under service settings, if this is not provided the default text message sender for the service will be used.smsSenderIdcan be omitted.
- added
- Update to
NotificationsAPIClient.sendEmail()- added
emailReplyToId: an optional email_reply_to_id specified when adding Email reply to addresses under service settings, if this is not provided the reply to email will be the service default reply to email.emailReplyToIdcan be omitted.
- added
- Attached source and javadoc artifacts to jar
Templatenow containspersonalisation, a map of the template placeholder names.
Notificationnow containsestimatedDelivery- Shows when the letter is expected to be picked up by Royal Mail from our printing providers.
nullfor sms and email.
NotificationClientApiinterface updated to include `sendLetter`` functionality.
sendLetteradded to NotificationClient- SendLetterResponse sendLetter(String templateId, Map<String, String> personalisation, String reference) throws NotificationClientException
personalisationmap is required, and must contain the recipient's address details.- as with sms and email,
referenceis optional.
- Template endpoints added to the NotificationClient
getTemplateById- get the latest version of a template by id.getTemplateVersion- get the template by id and version.getAllTemplates- get all templates, can be filtered by template type.generateTemplatePreview- get the contents of a template with the placeholders replaced with the given personalisation.- See the README for more information about the new template methods.
- Updated the jose4j dependency in light of the security issues: https://auth0.com/blog/critical-vulnerability-in-json-web-encryption/
- Added SSLContext to
NotificationClientconstructor, to allow clients to be created with a specified SSL Context.
- The Client UserAgent is now populated correctly.
NotificationClientExceptionnow has a getter for the httpResult,NotificationClientException.getHttpResult()- Added
NotificationClientApiinterface forNotificationClient- The interface is useful if you want to stub the
NotificationClientfor tests.
- The interface is useful if you want to stub the
- Using version 2 of the notification-api.
- Update to
NotificationClient.sendSms():- added
reference: an optional unique identifier for the notification or an identifier for a batch of notifications.referencecan be an empty string or null. - returns SendSmsResponse, this object only contains the necessary information about the notification.
- only one method signature:
public SendSmsResponse sendSms(String templateId, String phoneNumber, HashMap<String, String> personalisation, String reference) throws NotificationClientException;Wherepersonalisationcan be an empty map or null andreferencecan be an empty string or null.
- added
- Update to
NotificationClient.sendEmail():- added
reference: an optional unique identifier for the notification or an identifier for a batch of notifications.referencecan be an empty string or null. - returns SendEmailResponse, this object only contains the necessary information about the notification.
- only one method signature:
public SendEmailResponse sendEmail(String templateId, String emailAddress, HashMap<String, String> personalisation, String reference) throws NotificationClientException;Wherepersonalisationcan be an empty map or null andreferencecan be an empty string or null.
- added
- Notification class has been changed; return type of
NotificationClient.getNotificationById(id), see the README for details. NotificationClient.getAllNotifications()- Notifications can be filtered by
reference, see the README for details. - Notifications can be filtered by
olderThanId, see the README for details. - NotificationList response has changed, see the README for details.
- Notifications can be filtered by
NotificationClientremoved the constructors containing the serviceId, which is no longer needed because the api key contains the service id.