From 01dab8f171811b928c05b0a3cc11e1302087a906 Mon Sep 17 00:00:00 2001
From: mrsyaban <mrsyaban99@gmail.com>
Date: Fri, 17 Nov 2023 14:57:40 +0800
Subject: [PATCH] extend subs

---
 .../repositories/SubscriptionRepository.java  | 23 ++++++++++++-------
 .../services/SubscriptionService.java         |  7 +++---
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/src/main/java/soapserver/repositories/SubscriptionRepository.java b/src/main/java/soapserver/repositories/SubscriptionRepository.java
index 18a2ead..8ca1ef9 100644
--- a/src/main/java/soapserver/repositories/SubscriptionRepository.java
+++ b/src/main/java/soapserver/repositories/SubscriptionRepository.java
@@ -1,7 +1,9 @@
 package soapserver.repositories;
 
 import java.sql.Timestamp;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.List;
 
 import javax.persistence.criteria.CriteriaBuilder;
@@ -123,7 +125,7 @@ public class SubscriptionRepository {
       return false;
     }
   }
-  
+
   public String getExpired(int idUser) {
     try {
       SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
@@ -151,8 +153,17 @@ public class SubscriptionRepository {
 
       // Check expiration time
       Timestamp expirationDate = userSubscription.getExpiration_date();
+      
+      //Getting the calendar class instance
+      Calendar calendar = Calendar.getInstance();
+
+      // Passing the long value to calendar class function
+      calendar.setTimeInMillis(expirationDate.getTime());
+      
+      DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd 'at' hh:mm a");
+      String dateToString = df.format(expirationDate.toLocalDateTime());
 
-      return expirationDate.toString();
+      return dateToString;
     } catch (Exception e) {
       System.out.println(e.getMessage());
       return "error";
@@ -160,7 +171,7 @@ public class SubscriptionRepository {
   }
 
 
-  public boolean extendSubscription(int idUser, int duration) {
+  public boolean extendSubscription(int idUser) {
     try {
       SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
       Session session = sessionFactory.getCurrentSession();
@@ -174,8 +185,6 @@ public class SubscriptionRepository {
 
       List<Subscription> userSubData = session.createQuery(criteria).getResultList();
 
-      session.getTransaction().commit();
-
       if (userSubData.size() <= 0) {
         return false;
       }
@@ -185,10 +194,8 @@ public class SubscriptionRepository {
         return false;
       }
 
-      Timestamp expirationDate = userSubscription.getExpiration_date();
-
       // extend expiration date
-      userSubscription.setExpiration_date(new Timestamp(expirationDate.getTime() + duration ));
+      userSubscription.setExpiration_date(new Timestamp(System.currentTimeMillis() + (1000 * 60 * 60)) );
       session.save(userSubscription);
       session.getTransaction().commit();
 
diff --git a/src/main/java/soapserver/services/SubscriptionService.java b/src/main/java/soapserver/services/SubscriptionService.java
index aed8fee..2d11682 100644
--- a/src/main/java/soapserver/services/SubscriptionService.java
+++ b/src/main/java/soapserver/services/SubscriptionService.java
@@ -64,7 +64,7 @@ public class SubscriptionService {
     ) {
     try {
       String expiredDate = subscriptionRepo.getExpired(idUser);
-  
+      
       return expiredDate;
     } catch (Exception e) {
       System.out.println(e.getMessage());
@@ -74,11 +74,10 @@ public class SubscriptionService {
   
   @WebMethod
   public String extendSubscription(
-      @WebParam(name = "idUser") int idUser,
-      @WebParam(name = "duration") int duration
+      @WebParam(name = "idUser") int idUser
     ) {
     try {
-      boolean extended = subscriptionRepo.extendSubscription(idUser, duration);
+      boolean extended = subscriptionRepo.extendSubscription(idUser);
   
       return extended ? "extended success" : "extended failed";
     } catch (Exception e) {
-- 
GitLab