diff --git a/README.md b/README.md index a2d88ab5fcb373143775a6c1ecb8858afb7113e3..921a8264ad3931a9a9aee41d786a051ca8f752ae 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Nutricraft SOAP Service -Service yang digunakan oleh . +Service yang digunakan oleh aplikasi Nutricraft sebagai backend dengan menggunakan protokol SOAP ## Skema Basis Data @@ -9,13 +9,15 @@ Service yang digunakan oleh . ## Endpoints -`http://nutricraft-soap:8081/ws/subscription` +`/ws/subscription` -`http://nutricraft-soap:8081/ws/coins` +`/ws/coins` -`http://nutricraft-soap:8081/ws/userLevels` +`/ws/userLevels` -`http://nutricraft-soap:8081/ws/creatorLevels` +`/ws/creatorLevels` + +`/ws/emails` <!-- AUTHOR --> ## Authors @@ -27,6 +29,15 @@ Service yang digunakan oleh . | 13521031 | Fahrian Afdholi | ## Task Distribution +| Task | NIM | +|:--------------------:|:--------------: | +| SubscriptionServices | 13521011 | +| LevelUserServices | 13521011 | +| LevelCreatorServices | 13521011 | +| CoinServices | 13521011, 13521031 | +| EmailServices | 13521011 | + + <br> diff --git a/pom.xml b/pom.xml index f90055480d06c524a8de5d345bfb2fc0281f5a42..07b1e65ed0da719cddb66e81c3dde2c0ffe9bca7 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,11 @@ <artifactId>jaxws-api</artifactId> <version>2.3.1</version> </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>javax.mail-api</artifactId> + <version>1.6.2</version> + </dependency> </dependencies> diff --git a/src/main/java/org/nutricraft/Main.java b/src/main/java/org/nutricraft/Main.java index d1f82747b02b4cf4824bab1c69570633b232c0ff..d1401239f97bf97d7d164ea66f51f84130e3fc70 100644 --- a/src/main/java/org/nutricraft/Main.java +++ b/src/main/java/org/nutricraft/Main.java @@ -1,10 +1,8 @@ package org.nutricraft; -import org.nutricraft.Services.CoinServicesImpl; -import org.nutricraft.Services.LevelCreatorServicesImpl; -import org.nutricraft.Services.LevelUserServicesImpl; -import org.nutricraft.Services.SubscriptionServicesImpl; +import org.nutricraft.Services.*; + import javax.xml.ws.Endpoint; @@ -16,6 +14,7 @@ public class Main { Endpoint.publish("http://nutricraft-soap:8081/ws/userLevels", new LevelUserServicesImpl()); Endpoint.publish("http://nutricraft-soap:8081/ws/creatorLevels", new LevelCreatorServicesImpl()); Endpoint.publish("http://nutricraft-soap:8081/ws/coins", new CoinServicesImpl()); + Endpoint.publish("http://nutricraft-soap:8081/ws/emails", new EmailServicesImpl()); System.out.println("Server is ready..."); } catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/nutricraft/Services/EmailServices.java b/src/main/java/org/nutricraft/Services/EmailServices.java new file mode 100644 index 0000000000000000000000000000000000000000..807a573c6e9b4fe3e35af51a5368c06fcac659fc --- /dev/null +++ b/src/main/java/org/nutricraft/Services/EmailServices.java @@ -0,0 +1,12 @@ +package org.nutricraft.Services; + + +import javax.jws.WebMethod; +import javax.jws.WebService; + +@WebService +public interface EmailServices { + + @WebMethod + public String sendEmail(String to, String from, String Password); +} diff --git a/src/main/java/org/nutricraft/Services/EmailServicesImpl.java b/src/main/java/org/nutricraft/Services/EmailServicesImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..bd696d856665c9ebcc8f7594f30b12988c409c43 --- /dev/null +++ b/src/main/java/org/nutricraft/Services/EmailServicesImpl.java @@ -0,0 +1,61 @@ +package org.nutricraft.Services; + +import javax.jws.WebMethod; +import javax.jws.WebService; +import java.util.*; +import javax.mail.*; +import javax.mail.internet.*; + + +@WebService +public class EmailServicesImpl extends Services implements EmailServices { + @WebMethod + public String sendEmail(String to, String from, String password) { + if(!validateApiKey()){ + System.out.println("API KEY INVALID"); + return null; + } + + String host = "smtp.gmail.com"; + String port = "587"; + System.out.println(from); + System.out.println(password); + + Properties props = new Properties(); + props.put("mail.smtp.auth", "true"); + props.put("mail.smtp.starttls.enable", "true"); + props.put("mail.smtp.host", host); + props.put("mail.smtp.port", port); + Session session = Session.getInstance(props, new javax.mail.Authenticator() { + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(from, password); + } + }); + + try { + + MimeMessage message = new MimeMessage(session); + message.setFrom(new InternetAddress(from)); + message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); + message.setSubject("Berhasil Mendaftar ke Aplikasi Nutricraft"); + message.setContent("<html><body>"+ + "<h2>Konfirmasi Pendaftaran Aplikasi</h2>"+ + "<p>Selamat, Anda telah berhasil mendaftar pada aplikasi kami!</p>"+ + "<p>Terima kasih atas partisipasi Anda. Untuk mulai menggunakan aplikasi, silakan masuk ke akun Anda menggunakan kredensial yang telah Anda daftarkan.</p>"+ + "<p>Jika Anda memiliki pertanyaan atau memerlukan bantuan lebih lanjut, jangan ragu untuk menghubungi tim dukungan kami.</p>"+ + + "<div >"+ + "<p>-- Nutricraft Team --</p>"+ + "</div>"+ + "</body></html>","text/html"); + Transport.send(message); + System.out.println("Sent message successfully...."); + log("Sent Email"); + return "Sent message successfully...."; + } catch (MessagingException mex) { + mex.printStackTrace(); + log("Unable to sent email"); + return "Error: unable to send message...."; + } + } +}