diff --git a/src/main/java/ch/zhaw/gpi/twitterreview/delegates/GetUserInformationDelegate.java b/src/main/java/ch/zhaw/gpi/twitterreview/delegates/GetUserInformationDelegate.java new file mode 100644 index 0000000..9068b52 --- /dev/null +++ b/src/main/java/ch/zhaw/gpi/twitterreview/delegates/GetUserInformationDelegate.java @@ -0,0 +1,35 @@ +package ch.zhaw.gpi.twitterreview.delegates; + +import ch.zhaw.gpi.twitterreview.resources.User; +import ch.zhaw.gpi.twitterreview.services.UserService; +import javax.inject.Named; +import org.camunda.bpm.engine.delegate.BpmnError; +import org.camunda.bpm.engine.delegate.DelegateExecution; +import org.camunda.bpm.engine.delegate.JavaDelegate; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * + * @author scep + */ +@Named(value = "getUserInformationAdapter") +public class GetUserInformationDelegate implements JavaDelegate { + + @Autowired + private UserService userService; + + @Override + public void execute(DelegateExecution execution) throws Exception { + String anfrageStellenderBenutzer = (String) execution.getVariable("anfrageStellenderBenutzer"); + + User user = userService.getUser(anfrageStellenderBenutzer); + + if(user == null){ + throw new BpmnError("UserNotFound", "Kein Benutzer " + anfrageStellenderBenutzer + " gefunden"); + } + + execution.setVariable("firstName", user.getFirstName()); + execution.setVariable("email", user.geteMail()); + } + +} diff --git a/src/main/java/ch/zhaw/gpi/twitterreview/delegates/NotifyEmployeeDelegate.java b/src/main/java/ch/zhaw/gpi/twitterreview/delegates/NotifyEmployeeDelegate.java index a88ebd1..66866c3 100644 --- a/src/main/java/ch/zhaw/gpi/twitterreview/delegates/NotifyEmployeeDelegate.java +++ b/src/main/java/ch/zhaw/gpi/twitterreview/delegates/NotifyEmployeeDelegate.java @@ -32,6 +32,7 @@ public class NotifyEmployeeDelegate implements JavaDelegate { public void execute(DelegateExecution de) throws Exception { // Prozessvariablen auslesen String email = (String) de.getVariable("email"); + String firstName = (String) de.getVariable("firstName"); String tweetContent = (String) de.getVariable("tweetContent"); String checkResult = (String) de.getVariable("checkResult"); String checkResultComment = (String) de.getVariable("checkResultComment"); @@ -50,7 +51,7 @@ public void execute(DelegateExecution de) throws Exception { } // Mail-Text zusammenbauen - String mailBody = "Hallo Mitarbeiter\n\n" + "Du hast folgenden Text zum " + + String mailBody = "Hallo " + firstName + "\n\n" + "Du hast folgenden Text zum " + "Veröffentlichen als Tweet vorgeschlagen:\n" + tweetContent + "\n\n" + mailHauptteil + "\n\n" + "Deine Kommunikationsabteilung"; diff --git a/src/main/java/ch/zhaw/gpi/twitterreview/resources/User.java b/src/main/java/ch/zhaw/gpi/twitterreview/resources/User.java new file mode 100644 index 0000000..7679c0e --- /dev/null +++ b/src/main/java/ch/zhaw/gpi/twitterreview/resources/User.java @@ -0,0 +1,28 @@ +package ch.zhaw.gpi.twitterreview.resources; + +/** + * + * @author scep + */ +public class User { + private String firstName; + private String eMail; + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String geteMail() { + return eMail; + } + + public void seteMail(String eMail) { + this.eMail = eMail; + } + + +} diff --git a/src/main/java/ch/zhaw/gpi/twitterreview/services/UserService.java b/src/main/java/ch/zhaw/gpi/twitterreview/services/UserService.java new file mode 100644 index 0000000..a186b9a --- /dev/null +++ b/src/main/java/ch/zhaw/gpi/twitterreview/services/UserService.java @@ -0,0 +1,38 @@ +package ch.zhaw.gpi.twitterreview.services; + +import ch.zhaw.gpi.twitterreview.resources.User; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Component; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestTemplate; + +/** + * + * @author scep + */ +@Component +public class UserService { + + private final RestTemplate restTemplate; + + @Value(value = "${userservice.endpoint}") + private String userServiceEndpoint; + + public UserService(){ + restTemplate = new RestTemplate(); + } + + public User getUser(String userName){ + try{ + User user = restTemplate.getForObject(userServiceEndpoint + "/users/{userName}", User.class, userName); + return user; + } catch(HttpClientErrorException httpClientErrorException){ + if(httpClientErrorException.getStatusCode() == HttpStatus.NOT_FOUND){ + return null; + } else { + throw httpClientErrorException; + } + } + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d1ce7d5..b937c8a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -65,4 +65,6 @@ spring.mail.port=587 spring.mail.username=${mailUser} spring.mail.password=${mailPass} spring.mail.properties.mail.smtp.auth=true -spring.mail.properties.mail.smtp.starttls.enable=true \ No newline at end of file +spring.mail.properties.mail.smtp.starttls.enable=true + +userservice.endpoint=http://localhost:8070/userapi/v1 \ No newline at end of file diff --git a/src/main/resources/twitter-review.bpmn b/src/main/resources/twitter-review.bpmn index 5edb2c6..9e40350 100644 --- a/src/main/resources/twitter-review.bpmn +++ b/src/main/resources/twitter-review.bpmn @@ -1,5 +1,5 @@ - + @@ -19,16 +19,15 @@ ExclusiveGateway_0fj9kmh TweetAnfrageBehandelt Pruefergebnis - MitarbeiterKuerzelExtrahieren TweetSenden MitarbeiterBenachrichtigen + BenutzerInformationenAuslesen - + - @@ -58,7 +57,7 @@ - + @@ -94,13 +93,7 @@ - - - SequenceFlow_1vqcip2 - SequenceFlow_1n14gt1 - emailAdress = execution.getVariable("email"); -execution.setVariable("alias", emailAdress.substring(0,4)); - + @@ -138,6 +131,10 @@ execution.setVariable("alias", emailAdress.substring(0,4)); PT10S + + SequenceFlow_1vqcip2 + SequenceFlow_1n14gt1 + @@ -246,9 +243,6 @@ execution.setVariable("alias", emailAdress.substring(0,4)); - - - @@ -280,6 +274,9 @@ execution.setVariable("alias", emailAdress.substring(0,4)); + + +