diff --git a/src/main/java/soapserver/repositories/SubscriptionRepository.java b/src/main/java/soapserver/repositories/SubscriptionRepository.java index 8ca1ef97718bcf6211e032d39f5f43a1854f2f9b..be111b7ad94e5e888620f3cabbd95fb6581bd45a 100644 --- a/src/main/java/soapserver/repositories/SubscriptionRepository.java +++ b/src/main/java/soapserver/repositories/SubscriptionRepository.java @@ -74,6 +74,8 @@ public class SubscriptionRepository { Timestamp expirationDate = userSubscription.getExpiration_date(); Timestamp currentTime = new Timestamp(System.currentTimeMillis()); if (expirationDate.compareTo(currentTime) < 0) { + this.deleteSubscription(idUser); + return false; } @@ -93,7 +95,7 @@ public class SubscriptionRepository { for (int i = 201; i <= 300; i++) { Subscription subscription = new Subscription(); - subscription.setId_user(i + 1); + subscription.setId_user(i); subscription.setExpiration_date(new Timestamp(System.currentTimeMillis() + (1000 * 60 * 600))); session.save(subscription); } @@ -205,4 +207,30 @@ public class SubscriptionRepository { return false; } } + + public boolean deleteSubscription(int idUser) { + try { + SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); + Session session = sessionFactory.getCurrentSession(); + + session.beginTransaction(); + + Subscription subscription = session.find(Subscription.class, idUser); + session.remove(subscription); + session.flush(); + session.clear(); + + session.getTransaction().commit(); + + return true; + } catch (Exception e) { + SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); + Session session = sessionFactory.getCurrentSession(); + + session.getTransaction().commit(); + + System.out.println(e.getMessage()); + return false; + } + } } diff --git a/src/main/java/soapserver/services/SubscriptionService.java b/src/main/java/soapserver/services/SubscriptionService.java index 2d1168200642f3800b3902b8333bb7b9f777452f..c047bb46741256f9caa574d68c3bc10d23884125 100644 --- a/src/main/java/soapserver/services/SubscriptionService.java +++ b/src/main/java/soapserver/services/SubscriptionService.java @@ -32,12 +32,12 @@ public class SubscriptionService { return e.getMessage(); } } - + @WebMethod public String seedSubscription() { try { boolean success = subscriptionRepo.seedSubscription(); - + return success ? "success" : "seeding failed"; } catch (Exception e) { System.out.println(e.getMessage()); @@ -47,21 +47,20 @@ public class SubscriptionService { @WebMethod public String addSubscription( - @WebParam(name = "idUser") int idUser) { - try { - boolean success = subscriptionRepo.addSubscription(idUser); + @WebParam(name = "idUser") int idUser) { + try { + boolean success = subscriptionRepo.addSubscription(idUser); - return success? "success" : "failed"; - } catch (Exception e) { - System.out.println(e.getMessage()); - return "error"; - } + return success ? "success" : "failed"; + } catch (Exception e) { + System.out.println(e.getMessage()); + return "error"; + } } - + @WebMethod public String getExpired( - @WebParam(name = "idUser") int idUser - ) { + @WebParam(name = "idUser") int idUser) { try { String expiredDate = subscriptionRepo.getExpired(idUser); @@ -71,7 +70,7 @@ public class SubscriptionService { return e.getMessage(); } } - + @WebMethod public String extendSubscription( @WebParam(name = "idUser") int idUser