summaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
authorAlisaLinUwU <alisalinuwu@gmail.com>2025-01-26 11:41:45 +0500
committerAlisaLinUwU <alisalinuwu@gmail.com>2025-01-26 11:41:45 +0500
commit93fe6a825baa3c5141fb220256b2c0b1fc3da273 (patch)
treeb9cca4a0b970e8ee53a6465c1d2a572fb6dfb825 /src/main/java/com
Initializemain
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/mavlushechka/notary/NotaryApplication.java16
-rw-r--r--src/main/java/com/mavlushechka/notary/controller/ContactsPageController.java22
-rw-r--r--src/main/java/com/mavlushechka/notary/controller/MainPageController.java50
-rw-r--r--src/main/java/com/mavlushechka/notary/model/Request.java29
-rw-r--r--src/main/java/com/mavlushechka/notary/repository/RequestRepository.java9
-rw-r--r--src/main/java/com/mavlushechka/notary/util/EmailSender.java46
6 files changed, 172 insertions, 0 deletions
diff --git a/src/main/java/com/mavlushechka/notary/NotaryApplication.java b/src/main/java/com/mavlushechka/notary/NotaryApplication.java
new file mode 100644
index 0000000..87aba14
--- /dev/null
+++ b/src/main/java/com/mavlushechka/notary/NotaryApplication.java
@@ -0,0 +1,16 @@
+package com.mavlushechka.notary;
+
+import com.mavlushechka.notary.repository.RequestRepository;
+import org.springframework.boot.CommandLineRunner;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+
+@SpringBootApplication
+public class NotaryApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(NotaryApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/mavlushechka/notary/controller/ContactsPageController.java b/src/main/java/com/mavlushechka/notary/controller/ContactsPageController.java
new file mode 100644
index 0000000..5fa78b4
--- /dev/null
+++ b/src/main/java/com/mavlushechka/notary/controller/ContactsPageController.java
@@ -0,0 +1,22 @@
+package com.mavlushechka.notary.controller;
+
+import com.mavlushechka.notary.util.EmailSender;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import javax.mail.MessagingException;
+
+@Controller
+public class ContactsPageController {
+
+ public String redirectToContacts() {
+ return "redirect:/contacts";
+ }
+
+ @PostMapping("/send-message")
+ public String sendMessage(String firstName, String email, String message) throws MessagingException {
+ EmailSender.send(email, "barnoavezova@gmail.com", "Contact, %s".formatted(firstName), message);
+ return redirectToContacts();
+ }
+
+}
diff --git a/src/main/java/com/mavlushechka/notary/controller/MainPageController.java b/src/main/java/com/mavlushechka/notary/controller/MainPageController.java
new file mode 100644
index 0000000..fbea980
--- /dev/null
+++ b/src/main/java/com/mavlushechka/notary/controller/MainPageController.java
@@ -0,0 +1,50 @@
+package com.mavlushechka.notary.controller;
+
+import com.mavlushechka.notary.model.Request;
+import com.mavlushechka.notary.repository.RequestRepository;
+import com.mavlushechka.notary.util.EmailSender;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import javax.mail.MessagingException;
+
+@Controller
+public class MainPageController {
+ @Autowired
+ private RequestRepository requestRepository;
+
+ @GetMapping
+ public String redirectToHome() {
+ return "redirect:/";
+ }
+
+ @GetMapping("/")
+ public String home() {
+ return "index";
+ }
+
+ @GetMapping("/about-us")
+ public String aboutUs() {
+ return "about-us";
+ }
+
+ @GetMapping("/typography")
+ public String typography() {
+ return "typography";
+ }
+
+ @GetMapping("/contacts")
+ public String contacts() {
+ return "contact-us";
+ }
+
+ @PostMapping("/send-request")
+ public String sendRequest(String firstName, String secondName, String number, String requestForm, String message) {
+ requestRepository.save(new Request(firstName, secondName, number, requestForm, message));
+ return redirectToHome();
+ }
+
+}
diff --git a/src/main/java/com/mavlushechka/notary/model/Request.java b/src/main/java/com/mavlushechka/notary/model/Request.java
new file mode 100644
index 0000000..aa9725a
--- /dev/null
+++ b/src/main/java/com/mavlushechka/notary/model/Request.java
@@ -0,0 +1,29 @@
+package com.mavlushechka.notary.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class Request {
+ @Id
+ @GeneratedValue(strategy = GenerationType.AUTO)
+ private Long id;
+ private String firstName;
+ private String secondName;
+ private String number;
+ private String form;
+ private String message;
+
+ public Request() {
+ }
+
+ public Request(String firstName, String secondName, String number, String form, String message) {
+ this.firstName = firstName;
+ this.secondName = secondName;
+ this.number = number;
+ this.form = form;
+ this.message = message;
+ }
+}
diff --git a/src/main/java/com/mavlushechka/notary/repository/RequestRepository.java b/src/main/java/com/mavlushechka/notary/repository/RequestRepository.java
new file mode 100644
index 0000000..4321116
--- /dev/null
+++ b/src/main/java/com/mavlushechka/notary/repository/RequestRepository.java
@@ -0,0 +1,9 @@
+package com.mavlushechka.notary.repository;
+
+import com.mavlushechka.notary.model.Request;
+import org.springframework.data.repository.CrudRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface RequestRepository extends CrudRepository<Request, Long> {
+}
diff --git a/src/main/java/com/mavlushechka/notary/util/EmailSender.java b/src/main/java/com/mavlushechka/notary/util/EmailSender.java
new file mode 100644
index 0000000..ffdd62a
--- /dev/null
+++ b/src/main/java/com/mavlushechka/notary/util/EmailSender.java
@@ -0,0 +1,46 @@
+package com.mavlushechka.notary.util;
+
+import javax.mail.*;
+import javax.mail.internet.*;
+import java.util.Properties;
+
+public class EmailSender {
+
+ private final static Session SESSION;
+
+ static {
+ Properties properties = new Properties();
+ properties.put("mail.smtp.auth", true);
+ properties.put("mail.smtp.starttls.enable", true);
+ properties.put("mail.smtp.host", "smtp.mailtrap.io");
+ properties.put("mail.smtp.port", "2525");
+ properties.put("mail.smtp.ssl.trust", "smtp.mailtrap.io");
+ properties.put("mail.smtp.ssl.protocols", "TLSv1.2");
+
+ SESSION = Session.getInstance(properties, new Authenticator() {
+ @Override
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication("4df6840637b3c8", "829aff4fc98967");
+ }
+ });
+ }
+
+
+ public static void send(String from, String to, String subject, String messageText) throws MessagingException {
+ Message message = new MimeMessage(SESSION);
+ message.setFrom(new InternetAddress(from));
+ message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
+ message.setSubject(subject);
+
+ MimeBodyPart mimeBodyPart = new MimeBodyPart();
+ mimeBodyPart.setContent(messageText, "text/html; charset=utf-8");
+
+ Multipart multipart = new MimeMultipart();
+ multipart.addBodyPart(mimeBodyPart);
+
+ message.setContent(multipart);
+
+ Transport.send(message);
+ }
+
+}