- public Subscriber createSubscription(Subscription subscription){
- Subscriber sub = Subscriber.createFromSubscription(subscription);
- return subscriberRepository.save(sub);
+ public Subscriber createSubscription(Subscription subscription) {
+ subscription.setId(null);
+ Subscriber subscriber = Subscriber.createFromSubscription(subscription);
+ if (isSubscriberAlreadyExisting(subscriber)) {
+ String message = MessageFormat
+ .format("subscription with callback {0} and query {1} already exists", subscription.getCallback(),
+ subscription.getQuery());
+ ObjectError error = new ObjectError("subscription", message);
+ List<ObjectError> errors = Lists.newArrayList(error);
+ throw new ValidationException(errors);
+ } else {
+ return subscriberRepository.save(subscriber);
+ }