diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/ContactEmail.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/ContactEmail.java index 78b53595c..05b1db35f 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/ContactEmail.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/ContactEmail.java @@ -2,6 +2,7 @@ package eu.eudat.controllers; import eu.eudat.logic.managers.ContactEmailManager; import eu.eudat.models.data.ContactEmail.ContactEmailModel; +import eu.eudat.models.data.ContactEmail.PublicContactEmailModel; import eu.eudat.models.data.helpers.responses.ResponseItem; import eu.eudat.models.data.security.Principal; import eu.eudat.types.ApiMessageCode; @@ -38,4 +39,18 @@ public class ContactEmail { return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.ERROR_MESSAGE).message(ex.getMessage())); } } + + @Transactional + @RequestMapping(method = RequestMethod.POST, path = "public", consumes = "application/x-www-form-urlencoded", produces = "application/json") + public @ResponseBody + ResponseEntity sendContactEmailNoAuth(@ModelAttribute PublicContactEmailModel contactEmailModel) { + logger.info(contactEmailModel.toString()); + try { + this.contactEmailManager.sendContactEmailNoAuth(contactEmailModel); + return ResponseEntity.status(HttpStatus.NO_CONTENT).body(new ResponseItem().status(ApiMessageCode.SUCCESS_MESSAGE)); + } catch (Exception ex) { + logger.error(ex.getMessage(), ex); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(new ResponseItem().status(ApiMessageCode.ERROR_MESSAGE).message(ex.getMessage())); + } + } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java index 6303bf43a..ae090cfd3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java +++ b/dmp-backend/web/src/main/java/eu/eudat/logic/managers/ContactEmailManager.java @@ -3,6 +3,7 @@ package eu.eudat.logic.managers; import eu.eudat.data.entities.UserInfo; import eu.eudat.logic.services.ApiContext; import eu.eudat.models.data.ContactEmail.ContactEmailModel; +import eu.eudat.models.data.ContactEmail.PublicContactEmailModel; import eu.eudat.models.data.mail.SimpleMail; import eu.eudat.models.data.security.Principal; import org.springframework.core.env.Environment; @@ -35,6 +36,17 @@ public class ContactEmailManager { apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail); } + public void sendContactEmailNoAuth(PublicContactEmailModel contactEmailModel) throws MessagingException { + SimpleMail mail = new SimpleMail(); + String enrichedMail = contactEmailModel.getMessage() + "\n\n" + "Send by user: " + contactEmailModel.getEmail() ; + mail.setSubject(contactEmailModel.getAffiliation()); + mail.setTo(environment.getProperty("contact_email.mail")); + mail.setContent(enrichedMail); + mail.setFrom(contactEmailModel.getEmail()); + + apiContext.getUtilitiesService().getMailService().sendSimpleMail(mail); + } + public void emailValidation(ContactEmailModel contactEmailModel) throws Exception { if (contactEmailModel.getSubject() == null || contactEmailModel.getSubject().trim().isEmpty()) { throw new Exception("Subject is empty"); diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/ContactEmail/PublicContactEmailModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/ContactEmail/PublicContactEmailModel.java new file mode 100644 index 000000000..44f4996de --- /dev/null +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/ContactEmail/PublicContactEmailModel.java @@ -0,0 +1,41 @@ +package eu.eudat.models.data.ContactEmail; + +public class PublicContactEmailModel { + + private String fullName; + private String email; + private String affiliation; + private String message; + + public String getFullName() { + return fullName; + } + + public void setFullName(String fullName) { + this.fullName = fullName; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getAffiliation() { + return affiliation; + } + + public void setAffiliation(String affiliation) { + this.affiliation = affiliation; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/dmp-frontend/src/assets/splash/contact.html b/dmp-frontend/src/assets/splash/contact.html index 32d3ed541..b81b179d6 100644 --- a/dmp-frontend/src/assets/splash/contact.html +++ b/dmp-frontend/src/assets/splash/contact.html @@ -61,38 +61,39 @@
Contact
-
-
-
-
Contact us to learn more
-
-
-
* Required fields
-
-
- -
-
Full name
 
*
-
-
- -
-
E-mail
 
*
-
-
- -
-
Affiliation
 
*
-
-
- -
-
Message
 
*
-
-
- -
- +
+
+
+
+
Contact us to learn more
+
+
+
* Required fields
+
+ + +
+
Full name
 
*
+
+
+ +
+
E-mail
 
*
+
+
+ +
+
Affiliation
 
*
+
+
+ +
+
Message
 
*
+
+
+
+ +
@@ -143,4 +144,4 @@ - \ No newline at end of file +