Class NotificationServiceImpl
java.lang.Object
org.craftercms.studio.impl.v2.service.notification.NotificationServiceImpl
- All Implemented Interfaces:
NotificationService
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected com.google.common.cache.Cache<String,
NotificationConfigTO> protected ConfigurationService
protected ContentService
protected EmailMessageQueueTo
protected SecurityService
protected ServicesConfig
protected StudioConfiguration
Fields inherited from interface org.craftercms.studio.api.v2.service.notification.NotificationService
COMPLETE_DELETE, COMPLETE_GO_LIVE, COMPLETE_REJECT, COMPLETE_SCHEDULE_GO_LIVE, COMPLETE_SUBMIT_TO_GO_LIVE
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Set<ContentItemTO>
convertPathsToContent
(String site, List<String> listOfPaths) protected NotificationConfigTO
getNotificationConfig
(String site) @Valid String
getNotificationMessage
(String site, NotificationMessageType type, String key, org.apache.commons.lang3.tuple.Pair<String, Object>... params) Gets and process notification messagevoid
init()
protected void
loadCannedMessages
(org.dom4j.Element completedMessages, Map<String, List<MessageTO>> messageContainer) protected NotificationConfigTO
loadConfig
(String site) protected void
loadEmailTemplates
(org.dom4j.Element emailTemplates, Map<String, EmailMessageTemplateTO> messageContainer) protected void
loadGenericMessage
(org.dom4j.Element emailTemplates, Map<String, String> messageContainer) void
notify
(String site, List<String> toUsers, String key, org.apache.commons.lang3.tuple.Pair<String, Object>... params) Process and Sends a generic email.protected void
void
notifyApprovesContentSubmission
(String site, List<String> usersToNotify, List<String> itemsSubmitted, String submitter, ZonedDateTime scheduleDate, boolean isADelete, String submissionComments) Send to all given users a notification of content that need to be review.void
notifyContentApproval
(String site, String submitter, List<String> itemsSubmitted, String approver, ZonedDateTime scheduleDate) Sends Notification when content was approve.void
notifyContentRejection
(String site, List<String> submittedByList, List<String> rejectedItems, String rejectionReason, String userThatRejects) Notifies to the submitter that the content has been rejected.void
notifyDeploymentError
(String name, Throwable throwable) Sends a email to configure emails when a deployment had failvoid
notifyDeploymentError
(String site, Throwable throwable, List<PublishRequest> filesUnableToPublish) Sends a email to configure emails when a deployment had failvoid
notifyRepositoryMergeConflict
(String site, List<String> filesUnableToMerge) Send email to admin that repository has merged conflictprotected String
protected void
void
setCache
(com.google.common.cache.Cache<String, NotificationConfigTO> cache) void
setConfigurationService
(ConfigurationService configurationService) void
setContentService
(ContentService contentService) void
setEmailMessages
(EmailMessageQueueTo emailMessages) void
setSecurityService
(SecurityService securityService) void
setServicesConfig
(ServicesConfig servicesConfig) void
setStudioConfiguration
(StudioConfiguration studioConfiguration)
-
Field Details
-
contentService
-
emailMessages
-
servicesConfig
-
securityService
-
studioConfiguration
-
configurationService
-
cache
-
-
Constructor Details
-
NotificationServiceImpl
public NotificationServiceImpl()
-
-
Method Details
-
init
public void init() -
notifyDeploymentError
@Valid public void notifyDeploymentError(String site, Throwable throwable, List<PublishRequest> filesUnableToPublish) Description copied from interface:NotificationService
Sends a email to configure emails when a deployment had fail
- Specified by:
notifyDeploymentError
in interfaceNotificationService
- Parameters:
site
- Name of the site which the deployment fail.throwable
- Throwable error which break the deployment. (Can be null)filesUnableToPublish
- List of files that where unable to publish (can be null)
-
notifyDeploymentError
Description copied from interface:NotificationService
Sends a email to configure emails when a deployment had fail
- Specified by:
notifyDeploymentError
in interfaceNotificationService
- Parameters:
name
- Name of the site which the deployment fail.throwable
- Throwable error which break the deployment. (Can be null)
-
notifyContentApproval
@Valid public void notifyContentApproval(String site, String submitter, List<String> itemsSubmitted, String approver, ZonedDateTime scheduleDate) Description copied from interface:NotificationService
Sends Notification when content was approve.- Specified by:
notifyContentApproval
in interfaceNotificationService
- Parameters:
site
- Site of the Content.submitter
- User that submit the content to approval.itemsSubmitted
- List of Item paths that where approve (can be null)approver
- User that approve the content.scheduleDate
- scheduled date
-
getNotificationMessage
@Valid public @Valid String getNotificationMessage(String site, NotificationMessageType type, String key, org.apache.commons.lang3.tuple.Pair<String, Object>... params) Description copied from interface:NotificationService
Gets and process notification message- Specified by:
getNotificationMessage
in interfaceNotificationService
- Parameters:
site
- Site of the Content.type
- Type of the message wanted.key
- key of the message wantedparams
- parameters of the message this params will be used to process the message string.- Returns:
the message in the given locale and processed with the given variables.
If message not found either by key/locale it will return a default string)
-
notifyApprovesContentSubmission
@Valid public void notifyApprovesContentSubmission(String site, List<String> usersToNotify, List<String> itemsSubmitted, String submitter, ZonedDateTime scheduleDate, boolean isADelete, String submissionComments) Description copied from interface:NotificationService
Send to all given users a notification of content that need to be review.- Specified by:
notifyApprovesContentSubmission
in interfaceNotificationService
- Parameters:
site
- Site of the Content.usersToNotify
- List of users (username) to be notified.itemsSubmitted
- List of Item paths that where approve (can be null)submitter
- User (username) that is submitting the content.scheduleDate
- When the content should go live (null if now (or as soon is approved)).isADelete
- Is this submission a delete one.submissionComments
- submission comments
-
notify
@Valid public void notify(String site, List<String> toUsers, String key, org.apache.commons.lang3.tuple.Pair<String, Object>... params) Description copied from interface:NotificationService
Process and Sends a generic email.- Specified by:
notify
in interfaceNotificationService
- Parameters:
site
- Site of the Content.toUsers
- List of recipients.key
- key of the message wantedparams
- parameters of the message this params will be used to process the message string.
-
notify
-
notifyContentRejection
@Valid public void notifyContentRejection(String site, List<String> submittedByList, List<String> rejectedItems, String rejectionReason, String userThatRejects) Description copied from interface:NotificationService
Notifies to the submitter that the content has been rejected.- Specified by:
notifyContentRejection
in interfaceNotificationService
- Parameters:
site
- Site of the Content.submittedByList
- List of users that submitted the rejected content.rejectedItems
- Items that where rejectedrejectionReason
- why the content was rejected.userThatRejects
- User that is rejecting the content.
-
loadConfig
-
loadGenericMessage
-
loadEmailTemplates
protected void loadEmailTemplates(org.dom4j.Element emailTemplates, Map<String, EmailMessageTemplateTO> messageContainer) -
loadCannedMessages
-
getNotificationConfig
-
sendEmail
-
processMessage
-
convertPathsToContent
-
notifyRepositoryMergeConflict
Description copied from interface:NotificationService
Send email to admin that repository has merged conflict- Specified by:
notifyRepositoryMergeConflict
in interfaceNotificationService
- Parameters:
site
- site with merge conflictfilesUnableToMerge
- files unable to merge
-
getConfigPath
-
getTemplateTimezone
-
setContentService
-
setEmailMessages
-
setServicesConfig
-
setSecurityService
-
setStudioConfiguration
-
setConfigurationService
-
setCache
-