diff --git a/src/main/java/org/tonality/ws/ISubscription.java b/src/main/java/org/tonality/ws/ISubscription.java new file mode 100644 index 0000000000000000000000000000000000000000..e3fc4daf8b3c2725b89afaf65648d23f5bec4505 --- /dev/null +++ b/src/main/java/org/tonality/ws/ISubscription.java @@ -0,0 +1,75 @@ +package org.tonality.ws; + +import org.tonality.type.SubscriptionStatus; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; +import java.util.List; + +@WebService +public interface ISubscription { + @WebMethod + @WebResult(name = "subscription") + org.tonality.model.Subscription createSubscription( + @WebParam(name = "userId") + long userId, + @WebParam(name = "albumId") + long albumId + ); + + @WebMethod + @WebResult(name = "subscription") + org.tonality.model.Subscription updateSubscription( + @WebParam(name = "userId") + long userId, + @WebParam(name = "albumId") + long albumId, + @WebParam(name = "status") + org.tonality.type.SubscriptionStatus status + ); + + @WebMethod + @WebResult(name = "subscription") + org.tonality.model.Subscription getSubscription( + @WebParam(name = "userId") + long userId, + @WebParam(name = "albumId") + long albumId + ); + + @WebMethod + @WebResult(name = "subscriptions") + List<org.tonality.model.Subscription> getSubscriptionsByStatus( + @WebParam(name = "status") + SubscriptionStatus status + ); + + @WebMethod + @WebResult(name = "subscriptions") + List<org.tonality.model.Subscription> getSubscriptionsByUserId( + @WebParam(name = "userId") + long userId + ); + + @WebMethod + boolean deleteSubscription( + @WebParam(name = "userId") + long userId, + @WebParam(name = "albumId") + long albumId + ); + + @WebMethod + boolean deleteSubscriptionsByUserId( + @WebParam(name = "userId") + long userId + ); + + @WebMethod + boolean deleteSubscriptionsByAlbumId( + @WebParam(name = "albumId") + long albumId + ); +} diff --git a/src/main/java/org/tonality/ws/Subscription.java b/src/main/java/org/tonality/ws/Subscription.java index ed7ff89fc846c2165c46f18448abef06472ab116..bd31846ea66c01c71e0322429abbf984602b0dba 100644 --- a/src/main/java/org/tonality/ws/Subscription.java +++ b/src/main/java/org/tonality/ws/Subscription.java @@ -1,12 +1,123 @@ package org.tonality.ws; -import javax.jws.WebMethod; +import org.tonality.type.SubscriptionStatus; + import javax.jws.WebService; +import java.util.List; + +@WebService(endpointInterface = "org.tonality.ws.ISubscription") +public class Subscription implements ISubscription { + @Override + public org.tonality.model.Subscription createSubscription(long userId, long albumId) { + try { + org.tonality.model.Subscription subscription = new org.tonality.model.Subscription(); + subscription.setUserId(userId); + subscription.setAlbumId(albumId); + if (org.tonality.repository.Subscription.getInstance().add(subscription) == null) { + throw new Exception("Failed to create subscription"); + } + return subscription; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + @Override + public org.tonality.model.Subscription updateSubscription(long userId, long albumId, SubscriptionStatus status) { + try { + org.tonality.model.Subscription subscription = new org.tonality.model.Subscription(); + subscription.setUserId(userId); + subscription.setAlbumId(albumId); + subscription.setStatus(status); + if (org.tonality.repository.Subscription.getInstance().update(subscription) == null) { + throw new Exception("Failed to update subscription"); + } + return subscription; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + @Override + public org.tonality.model.Subscription getSubscription(long userId, long albumId) { + try { + org.tonality.model.SubscriptionId id = new org.tonality.model.SubscriptionId(userId, albumId); + return org.tonality.repository.Subscription.getInstance().getById(id); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + @Override + public List<org.tonality.model.Subscription> getSubscriptionsByStatus(SubscriptionStatus status) { + try { + java.util.Map<String, Object> andConditions = new java.util.HashMap<>(); + andConditions.put("status", status.toString()); + java.util.Map<String, Object> orConditions = new java.util.HashMap<>(); + return org.tonality.repository.Subscription.getInstance().search(andConditions, orConditions); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + @Override + public List<org.tonality.model.Subscription> getSubscriptionsByUserId(long userId) { + try { + java.util.Map<String, Object> andConditions = new java.util.HashMap<>(); + andConditions.put("userId", userId); + java.util.Map<String, Object> orConditions = new java.util.HashMap<>(); + return org.tonality.repository.Subscription.getInstance().search(andConditions, orConditions); + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + @Override + public boolean deleteSubscription(long userId, long albumId) { + try { + org.tonality.model.SubscriptionId id = new org.tonality.model.SubscriptionId(userId, albumId); + if (!org.tonality.repository.Subscription.getInstance().deleteById(id)) { + throw new Exception("Failed to delete subscription"); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } + + @Override + public boolean deleteSubscriptionsByUserId(long userId) { + try { + java.util.Map<String, Object> conditions = new java.util.HashMap<>(); + conditions.put("userId", userId); + if (!org.tonality.repository.Subscription.getInstance().delete(conditions)) { + throw new Exception("Failed to delete subscriptions"); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } + } -@WebService -public class Subscription { - @WebMethod - public String test() { - return "Hello World!"; + @Override + public boolean deleteSubscriptionsByAlbumId(long albumId) { + try { + java.util.Map<String, Object> conditions = new java.util.HashMap<>(); + conditions.put("albumId", albumId); + if (!org.tonality.repository.Subscription.getInstance().delete(conditions)) { + throw new Exception("Failed to delete subscriptions"); + } + return true; + } catch (Exception e) { + e.printStackTrace(); + return false; + } } }