diff --git a/src/main/java/org/tubes/Main.java b/src/main/java/org/tubes/Main.java index 3a4f22bcb0551d6c17f263c73e64806426bd233a..9f3b961a24af553eff3394f69bd2ceee2998a7ca 100644 --- a/src/main/java/org/tubes/Main.java +++ b/src/main/java/org/tubes/Main.java @@ -1,6 +1,7 @@ package org.tubes; import org.tubes.db.Database; +import org.tubes.services.RentServiceImpl; import org.tubes.services.SubscriptionServiceImpl; import org.tubes.services.TestServiceImpl; @@ -13,7 +14,9 @@ public class Main { Database.getInstance().runMigration(); Endpoint.publish("http://0.0.0.0:7000/ws/Test", new TestServiceImpl()); Endpoint.publish("http://0.0.0.0:7000/ws/Subscription", new SubscriptionServiceImpl()); + Endpoint.publish("http://0.0.0.0:7000/ws/Rent", new RentServiceImpl()); System.out.println("Service is running at http://0.0.0.0:7000/ws/Subscription"); + System.out.println("Service is running at http://0.0.0.0:7000/ws/Rent"); } catch (Exception e) { e.printStackTrace(); } diff --git a/src/main/java/org/tubes/dto/RentDto.java b/src/main/java/org/tubes/dto/RentDto.java new file mode 100644 index 0000000000000000000000000000000000000000..9bd358c8a63eea42f1bd67ac93be550cbacf2e75 --- /dev/null +++ b/src/main/java/org/tubes/dto/RentDto.java @@ -0,0 +1,19 @@ +package org.tubes.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +@Getter @Setter +public class RentDto implements Serializable { + String status; + String userId; + String email; + Integer dormId; + String start; + Integer totalMonths; + Boolean isExtending; + Integer totalExtendedMonths; + String dormName; +} diff --git a/src/main/java/org/tubes/services/RentService.java b/src/main/java/org/tubes/services/RentService.java new file mode 100644 index 0000000000000000000000000000000000000000..b19fe3ad952bc880a223492c66a534ec823f988a --- /dev/null +++ b/src/main/java/org/tubes/services/RentService.java @@ -0,0 +1,13 @@ +package org.tubes.services; + +import org.tubes.dto.RentDto; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; + +@WebService +public interface RentService { + @WebMethod + Boolean notifyRent(@WebParam(name = "rent") RentDto rent); +} diff --git a/src/main/java/org/tubes/services/RentServiceImpl.java b/src/main/java/org/tubes/services/RentServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..ca1eb40ba4b231bb84a0d3f30516f738e9197287 --- /dev/null +++ b/src/main/java/org/tubes/services/RentServiceImpl.java @@ -0,0 +1,24 @@ +package org.tubes.services; + +import org.tubes.dto.RentDto; +import org.tubes.utils.Mailer; + +import javax.jws.HandlerChain; +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.mail.MessagingException; + +@WebService(endpointInterface = "org.tubes.services.RentService", serviceName = "RentService") +@HandlerChain(file="handler-chain.xml") +public class RentServiceImpl implements RentService { + @WebMethod + @Override + public Boolean notifyRent(RentDto rent) { + try { + Mailer.getInstance().send(rent.getEmail(), "Rent Request Update", "Your rent request for " + rent.getDormName() + " has been " + rent.getStatus() + " by the owner."); + return true; + } catch (MessagingException e) { + return false; + } + } +}